Can ProxyExec and sched_ext get along?
summary
Proxy Execution implements split contexts so the scheduler-selected task becomes a runq donor while the lock owner runs; benchmarks show a 15 µs average foreground latency with 120 ms outliers when background tasks are constrained, and Proxy Execution collapses those outliers. Reader-writer semaphores are now proxy-enabled and work with the core changes. sched_ext (BPF) and Proxy Execution are mutually exclusive via Kconfig today; ongoing work integrates them, adding DL-server fixes, sketex tests and a sketex prio inversion test to expose mismatches.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:48Proxy execution basics
- 3:36Proxy execution benefits
- 4:40Sched_ext and Android vendor hooks
- 6:24Proxy execution and sched_ext collision
- 8:08BPF scheduler UAPI concerns
- 9:32Sched_ext assumptions and risks
- 10:56Testing proxy execution with sched_ext
- 12:40Proxy execution results with sched_ext
- 13:49BPF scheduler visibility needs
- 14:53Generalizing donor scheduling
- 15:13Opt-in for donor scheduling
related talks
21mHow to reduce complexity in Proxy Execution
30mScheduling at Scale: eBPF Schedulers with Sched_ext
16mPeeR: First-Class Scheduling for Latency-Critical eBPF Applications
46mOptimizing Scheduler for Linux Gaming
32meBPF Kernel Scheduling with Ghost
23mSCHED_DEADLINE desiderata and slightly crazy ideas
24mPREEMPT_RT Q&A with tglx
37mReal-time Scheduling Fault Simulation
