Re:I’m Not Dead yet; The Role of the Operating System in a K...
by ncmncm on Friday April 12, 2019 @10:41AM
(#19645175)
Every time somebody comes in with another abstraction scheme, my first thought is, "great, how do I bypass it?". Give me onload, I use ef_vi. Give me exasock, I use exanic.
The amount of code to operate at the lower level turns out to never be more than a hundred or two lines of code (much less for exanic), but always eliminates latency that comes from doing crap I will just need to undo, or redo differently.
AF_XDP and eBPF suggest the promise of making that code portable, yet running it in the NIC itself, possibly even eliminating a polling thread that uses up a whole core on the host, but it seems to need more support in the library available to the eBPF code. Specifically, it needs better access to (pre-permission-checked and mapped) DMA to host RAM, and precise, accurate timestamps. They don't need to be pretty, but they need to exist.
The amount of code to operate at the lower level turns out to never be more than a hundred or two lines of code (much less for exanic), but always eliminates latency that comes from doing crap I will just need to undo, or redo differently.
AF_XDP and eBPF suggest the promise of making that code portable, yet running it in the NIC itself, possibly even eliminating a polling thread that uses up a whole core on the host, but it seems to need more support in the library available to the eBPF code. Specifically, it needs better access to (pre-permission-checked and mapped) DMA to host RAM, and precise, accurate timestamps. They don't need to be pretty, but they need to exist.