Session

The Battle Of The ZCs: Who is the prettiest of them all?

Speakers

Nabil Bitar
Jamal Hadi Salim
Victor Nogueira
Pedro Tammela

Label

Nuts and Bolts

Session Type

Talk

Description

This talk investigates the performance characteristics of two high-performance networking techniques in Linux: TCP devmem[1] and IOURING zero copy[2].

While TCP devmem is designed for zero copy to/from network/accelerators like GPUs we look at it from perspective of copying to/from user memory using udmabuf. From that perspective, both techniques aim to optimize data transfer by minimizing or eliminating data copying between kernel and user space, thereby reducing CPU overhead and latency. Both are also new to the Linux world and hold different impacts on the networking application landscape and are still not fully integrated into Linux proper making them a bit of a mystery to most application writers.

We conduct a comparative analysis of these techniques by implementing them in network applications and measuring their performance across key metrics, including bandwidth, latency, power and CPU utilization. Our experiments demonstrate the strengths and weaknesses of each approach under various workloads and system configurations. The findings of this study provide valuable insights for network application developers seeking to optimize data transfer performance in Linux environments.

[1]https://netdevconf.info/0x17/sessions/talk/device-memory-tcp.html

[2] https://netdevconf.info/0x17/sessions/talk/fast-zc-rx-data-plane-using-io-uring.html