2 ms·
I remember some of this on Windows when I was implementing a prototype DNS that could saturate a 10G link. There were two components, Receive-Side Scaling and
by sterlind 5y ago
I remember some of this on Windows when I was implementing a prototype DNS that could saturate a 10G link.
There were two components, Receive-Side Scaling and some special user-mode thing. RSS would load-balance 5-tuples onto different cores somehow, triggering interrupts on the right core for that stream. If you were careful with the driver stack you could have zero-copy all the way to user mode, where there was some magic that let you dispatch into user mode and read packet data from a ring buffer.
Gave me an appreciation for how a single machine is made of lots of pieces, and how frustrating it is to chase perf.