Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That was previously explored in https://github.com/tailscale/tailscale/issues/2303 and will probably still happen.

When Josh et al tried it, they hit some fun kernel bugs on certain kernel versions and that soured them on it for a bit, knowing it wouldn't be as widely usable as we'd hoped based on what kernels were in common use at the time. It's almost certainly better nowadays.

Hopefully the Go runtime starts doing it instead: https://github.com/golang/go/issues/31908



It will likely not help a lot, because syscall overhead is not the bottleneck - but the implementation of the actual syscalls is - which is very visible in the flamegraphs. Both sendmmsg/recvmmsg and io_uring only help with the syscall overhead, and therefore are not as helpful in improving efficiency as the the offloads which make the actual network stack more efficient.

Besides kernel supplied offloads, the thing which helps further is actually bypassing the kernel with AF_XDP or DPDK. But those techniques will have other challenges and limitations.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: