The Demikernel Datapath OS Architecture
micahlerner.com
micahlerner.com
POSIX and Linux are not the same. There is no epoll in POSIX, it's a Linux addition. The BSDs have kqueue which according to some people is actually better [cf. https://www.youtube.com/embed/l6XQUciI-Sc?start=3362 ]. But kqueue isn't POSIX either. Only poll() and select() are...
From the abstract:
> However, none of these systems offer a general-purpose datapath OS replacement that meet the needs of µs-scale systems
One of the key points that the authors use to motivate their work is that using kernel bypass technologies is hard because it requires software engineers to rearchitect their code.
Call me sceptical of that claim. I can think of 3 (open source) systems that provide drop-in replacement network interfaces for existing software, but offer nanosecond (not microsecond!) scale performance.
- Solarflare/Xilinx Open Onload - https://github.com/Xilinx-CNS/onload
- Exablaze/Cisco - ExaSOCK - https://github.com/cisco/exanic-software
- Melanox/NVidia VMA - https://github.com/Mellanox/libvma
With each of the above systems, they are designed to offer low latency network stack replacement for existing applications, without code modification or even recompilation. Exactly the authors’ goals.
But there is not a single reference to any of these technologies in the paper. And crucially no comparison to any of them in the evaluation.
The authors seem blissfully unaware of what work has actually been done to solve these problems. Which makes the contributions of the paper … somewhat dubious.
Of the three examples you listed, none of them seem to support their kernel bypass capabilities in anything other than Linux.
With that said, it's one thing to have a legitimate reason for preferring an alternative approach. But the paper doesn't even mention these solutions, which means that the authors are either ignorant of what's already been done (bad), or deliberately avoiding comparisons to alternative approaches (worse).
But ... selling the hardware is where those companies make their money, so there's not much of a business case for making your free and open-source software run on other people's (cheap) NICs.