UKELELE
summary
UKELELE links application and kernel via UKL patches to register function-pointer upcalls for IO events, replacing poll/select style marshalling with direct handler invocation. Porting Redis adds ~140 LOC and uses a single event queue per CPU option (single-queue for the Redis demo). Measured results show most requests cluster tightly (≈92%) while ~8% suffer two-orders-of-magnitude delays; UKELELE drops the whole latency curve by eliminating event unpacking and increases throughput, with further tail-latency gains expected when using per-CPU locality.
AI-written summary · about
chapters (14)
- 0:00UKELELE introduction
- 1:25UKELELE and UKL goals
- 2:51Event loops and app challenges
- 5:22Latency in event handling
- 7:26Event handling APIs evolution
- 10:35Concurrency and locality limits
- 13:26OS event handling primitives
- 15:13UKELELE event queue design
- 18:42UKELELE event processing
- 20:05Redis porting results
- 22:10Porting complexity and effort
- 23:11MIMIC-D porting challenges
- 24:55Future directions and zero-copy IO
- 26:43Conclusion and applications
related talks
31mKernel handling of CPU and memory hot un/plug events for crash
22mUnICom: A Universally High-Performant I/O Completion Mechanism for Modern Computer...
41mStatus of Embedded Linux
57mAsynchronous I/O and coroutines for smooth data streaming
21mKUtrace For RISC-V
11mUserspace Bypass: Accelerating Syscall-intensive Applications
28mExtreme OS Kernel Testing
21mNVMe Emulation Performance Optimization
