Launching new processes with `io_uring_spawn` for fast builds
summary
An io_uring extension implements io_uring_spawn by adding clone+exec ops that run linked setup operations entirely in-kernel so no fork copy or user-space wrappers are needed; benchmarks report a fork baseline of 52 μs, touching every page makes fork ~7.5 ms, and the new approach is 6–10% faster than vfork and 31–36% faster than posix_spawn. Prototype uses linked SQEs for path-search and dup/close actions, works in multithreaded programs, and targets upstream.
AI-written summary · about
chapters (15)
- 0:00Introduction and motivation
- 1:27Fork and exec process launch
- 3:14Benchmarking process launch speed
- 4:38Problems with fork and vfork
- 6:22Posix spawn limitations
- 10:39Why process copies are needed
- 11:01Introduction to io_uring
- 12:47io_uring_spawn proposal
- 17:24Advantages over fork and spawn
- 18:48Code example and simplicity
- 19:08Performance results
- 20:11Future optimizations and plans
- 21:58Alternative faster method today
- 23:24Acknowledgments and thanks
- 24:07Q&A session
related talks
23mRiker: Always-Correct and Fast Incremental Builds from Simple Specifications
44mSpeeding up Kernel Testing and Debugging with virt-meng
26mLightweight Preemptible Functions
30mThe Quest for the Fastest Deployment Time
19mRFUSE: Modernizing Userspace Filesystem Framework through Scalable Kernel-Userspace...
38mStrategies to speed up build iteration, or dynamic hot reloading
36mParallel Builds in Eclipse IDE Workspaces
31mBuilding and Scaling Developer Environments at Stripe
