5–7 Oct 2026
Europe/Prague timezone

Taming latency spikes caused by lock holder and lock waiter preemption

7 Oct 2026, 15:46
18m
"Club H" (Prague Congress Centre)

"Club H"

Prague Congress Centre

128
sched_ext: The BPF extensible scheduler class MC sched_ext: The BPF extensible scheduler class MC

Speaker

Changwoo Min (Igalia)

Description

Preempting a lock holder — or failing to promptly schedule a just-woken
lock waiter — extends the serialized critical section and produces severe
tail-latency (P99) spikes: degraded server throughput, frame-time
spikes and dropped frames in games. Applications hit this on both
kernel-space locks and user-space primitives backed by futexes and SysV
semaphores. Existing techniques help but leave gaps: proxy execution
addresses kernel-mutex priority inversion but not user-space futex waiters
or counting semaphores, and time-slice extension protects a detected holder
while doing nothing for the delayed waiter.

We define lock waiter preemption (LWP) as the dual of lock holder
preemption (LHP): the scheduling delay a woken waiter suffers before it
runs, which we have measured at 2–16 ms in production game and server
workloads. We will present these measurements and a prototype LHP/LWP
mitigation built in a production sched_ext scheduler, then open three
challenges for community discussion:

  • efficiently identifying lock-related preemption from BPF;
  • exposing synchronization state between libc and sched_ext;
  • designing lightweight scheduler-assisted locking that improves latency
    without sacrificing scalability.

Author

Presentation materials

There are no materials yet.