There has been an ongoing effort in the community to get Zero-copy working over the last few years - with much success. While both MSG_ZEROCOPY (zero copy transmit) and socket mmap (zero copy receive) have been out in the wild for sometime now, there are no known high scale open source application consumers of these interfaces.
In this talk, Or Gerlitz will describe how he makes use of these interfaces to integrate into spdk(https://spdk.io/) - an open source storage framework which uses sockets for nvme-over-tcp in a smart NIC environment. The goal is to use kernel uAPIs while achieving high scale performance.
Or will delve into MSG_ZEROCPOY and the challenges that he had to deal with. He will describe the need for an app author to understand and how to best tie-in their app state machine to the interfaces: to address both transactions responses from the peer app and zero-copy notifications from the local socket provider. Should the app use ZC with all or nothing approach or sometimes yes and other-times no? Come to the talk to get the answer and advise on how to effectively use these interfaces.
In addition Or will spend time going into the performance analysis details correlating I/O performance visavis CPU cost (which is often tricky to get right with traditional tools like profiler/flame-graphs).
More info: https://netdevconf.info/0x14/session.html?talk-storage-application-performan...
Reminder, registration is now open and early bird is still in effect. https://netdevconf.info/0x14/registration.html
cheers, jamal