News for hackers. Stuff that matters.
Re:QUIC is now RFC 9000 by MichaelMoser123 on Friday May 28, 2021 @05:30AM (#27313321)
you can do that, if you can to accept the overhead of a system call per outgoing/incoming frame.
Re:QUIC is now RFC 9000 by fanf2 on Friday May 28, 2021 @11:22AM (#27316457)
Re:QUIC is now RFC 9000 by Matthias247 on Friday May 28, 2021 @02:12PM (#27318676)
Those work and will reduce the system call overhead. But testing showed that it isn't actually the main culprit (e.g. you might gain 5% efficiency by going for it).

A far bigger bottleneck with the kernel stack is that e.g. the route lookup, iptable rules and similar things will be evaluated per packet - which is taking up most of the time. That will happen independent of you deliver one packet per system call or multiple of those.

UDP Generic segmentation offload (GSO - https://lwn.net/Articles/752184/) reduces that overhead by amortizing all in-kernel and driver operations over batches of datagrams. It makes a far bigger difference in efficiency than purely reducing syscalls (e.g. to +100% efficiency - but it will all depend on the other work the application and QUIC stack does and what drivers support).

Re:QUIC is now RFC 9000 by slrz on Friday May 28, 2021 @10:42AM (#27315904)
You can always use sendmmsg(2), writev(2) or other iovec-based APIs.