|
|
|
|
|
by thomashabets2
295 days ago
|
|
Under load it's zero syscall (barring any rare allocations inside rustls for the handshake. I can't guarantee that it never does). Without load the overhead of calling (effectively) sleep() is, while technically true, not relevant. But sure, you can tweak the busyloop timers and burn 100% CPU on kernel and user side indefinitely if you want to avoid that sleep-when-idle syscall. It's just… not a good idea. |
|
First, there are some tricks required to actually make it work at all, then there is a problem that you'll need a core not only for userland, but also inside the kernel, both of them per-application.
Sharing a kernel spinning thread across multiple applications is also possible but requires further efforts (you need to share some parent ring across processes, which need to be related).
Overall I feel that it doesn't really deliver on the no-system-call idea, certainly not out of the box. You might have a more straightforward experience with XDP, which coincidentally gives you a lot more access and control as well if you need it.