Empowering High Performance User Space Network Stack on Arm
summary
F-Stack is ported to Arm as a FreeBSD-based user‑space TCP/IP stack with F-Stack default TCP buffer 16KB vs kernel 4KB, uses DPDK for kernel bypass, and runs nginx tests showing nginx ≈2× kernel throughput and good scaling with CPU cores. Work includes porting iperf3 (challenges: nonstandard sockets, FD limits, nonblocking semantics) and making F-Stack an LD_PRELOAD-able independent library via shared “shadow” memory and a memory-manager API. Comparison notes: mTCP lacks full kernel features, VPP Hoststack shows modest gains at 64B packets and better scaling with cores.
AI-written summary · about
chapters (12)
- 0:00Introduction to user space network stacks
- 3:25Key features of user space stacks
- 5:11Performance benchmarks and metrics
- 7:40F-Stack architecture and modifications
- 10:14Challenges porting legacy apps to F-Stack
- 13:28Event models in F-Stack vs kernel
- 16:26Making legacy apps non-blocking for F-Stack
- 17:50F-Stack as an independent library
- 18:55mTCP architecture and limitations
- 20:00VPP host stack overview and performance
- 21:48Comparison of user space network stacks
- 23:24Next steps and future work
related talks
18miStack: A General and Stateful Name-based Protocol Stack for Named Data Networking
28mCreating Memory Efficient and High Performance IP Stack for Zephyr OS
24mCan a User-Space Protocol Stack Balance High Performance and Generality? Our Answer: Both.
17mOpening Up Kernel-Bypass TCP Stacks
13mTCP-Fuzz: Detecting Memory and Semantic Bugs in TCP Stacks with Fuzzing
22mEmpowering Edge Software Stack on Arm with High Performance Container Networking Tech
20mNetKernel: Making Network Stack Part of the Virtualized Infrastructure
17mRearchitecting the TCP Stack for I/O-Offloaded Content Delivery
