Zero-copy networking
Zero-copy networking
Posted Jul 4, 2017 12:18 UTC (Tue) by sorokin (guest, #88478)Parent article: Zero-copy networking
In Microsoft they realized that locking pages in memory is expensive. And in Windows 8 they come up with an API called Registered I/O. It requires an application to register buffers in advance. Then I/O operations just use these registered buffers and therefore don't need to lock any pages.
I believe in Linux kernel people should just skip designing zero-copy operations altogether and just implement Registered I/O.
Posted Jul 4, 2017 18:49 UTC (Tue)
by einstein (subscriber, #2052)
[Link] (1 responses)
Posted Dec 19, 2017 22:23 UTC (Tue)
by immibis (subscriber, #105511)
[Link]
Just because several components are tied together in one product with annoying marketing, doesn't mean they all suck. I'm sure the kernel I/O developers had nothing to do with the start screen.
Posted Jul 5, 2017 13:17 UTC (Wed)
by abatters (✭ supporter ✭, #6932)
[Link]
Posted Jul 5, 2017 14:35 UTC (Wed)
by clameter (subscriber, #17005)
[Link] (2 responses)
Posted Jul 6, 2017 21:52 UTC (Thu)
by wtarreau (subscriber, #51152)
[Link] (1 responses)
Also it seems to me that this send(MSG_ZEROCOPY) is not much different from doing a vmsplice().
Posted Jul 11, 2017 0:00 UTC (Tue)
by klempner (subscriber, #69940)
[Link]
The fundamental problem with application to vmsplice pipe to TCP socket is that you don't know when the pages in question are done and can be freed/modified, and if you modify them you're liable to start, say, leaking crypto keys out to the network if that memory gets reused before the TCP stack is done with it.
Posted Jul 5, 2017 21:27 UTC (Wed)
by k8to (guest, #15413)
[Link]
Those are prices that must be paid for completely maximizing throughput in high transaction count scenarios, but they're an awkward price for most users.
The registered I/O tweak is relatively recent and somewhat informative however, driven as it is by modern hardware requirements instead of ancient design concerns.
Zero-copy networking
Zero-copy networking
Zero-copy networking
Zero-copy networking
Zero-copy networking
Zero-copy networking
Zero-copy networking