How to reduce complexity in Proxy Execution
summary
Proxy execution aims to eliminate priority inversion by keeping mutex-blocked tasks on run queues and running their runnable owners instead; a userland reproducer shows it removes huge foreground outliers caused by CPU‑share throttling. The work exists as a long patch series split into 40 patches (about 20 sent), with V6 stabilizes sleeping owner and queuing and a CONFIG option to build but disable at boot. It currently works functionally but adds complex cross‑CPU migrations, mid‑chain wakeups, and some regressions; one proposed half‑step is local boosting only, skipping migration.
AI-written summary · about
chapters (9)
- 0:00Problem overview
- 1:22Proxy execution concept
- 3:04Implementation progress
- 4:22Technical challenges
- 6:04Community feedback and strategy
- 7:41Development methodology
- 9:25Scheduling mechanics
- 13:00Locking and complexity
- 18:18Review and closing
related talks
16mCan ProxyExec and sched_ext get along?
24mPREEMPT_RT Q&A with tglx
39mCPU isolation vs jailbreaking IPIs
24mLimit the idle CPU search depth and use CPU filter during task wake up
34mA Journey into Linux Interrupt Handling Bottom Halves
32mIsolation aware smp_call_function/queue_work_on APIs
26mstrace: fight for performance
01h 00mOut-of-order execution - what can it do for me?
