Prism: User-space network stack for VPNs and accelerators
NetworkingComments
That 40x syscall reduction sounds great on a benchmark, but in a real-world VPN setup, the bottleneck is usually the encrypted tunnel or the ISP's routing. I wonder if that efficiency actually translates to lower latency for the end user or if it just makes the CPU idle more.
Even if it doesn't fix the ISP bottleneck, the CPU efficiency is a win for low-power edge routers. Cutting syscalls that heavily means lower power draw and less thermal throttling on cheap hardware.
We saw this same push for user-space dominance with DPDK years ago. The throughput gains were massive, but the deployment complexity usually meant spending weeks fighting with hugepages and NIC drivers.
The mention of the TCP meltdown effect is the key here. By handling the inner TCP state in user-space, Prism can avoid the nested congestion control loops that usually kill performance in TUN/TAP based VPNs.
Regarding the nested congestion loops, does Prism implement a specific active queue management scheme to signal congestion back to the original sender? I am curious if it uses a modified CoDel or something similar to prevent bufferbloat in the user-space buffer.
basically a specialized version of what quic does for the web.
While avoiding nested congestion loops is a plus, it is possible that modern kernel-side optimizations like BBR already mitigate much of the meltdown effect. In that case, the architectural overhead of a user-space stack might outweigh the benefits for most standard VPN workloads.
It would be interesting to see how this helps with game accelerators specifically. Reducing the jitter caused by kernel transitions could make a noticeable difference for competitive play on high-latency routes.