Getting Around to It: Deferred Work in the Linux Kernel
summary
Compares how softirqs and workqueues actually behave, showing that ksoftirqd can delay callbacks long enough to cause RCU stalls and watchdog timeouts and that a kworker once stuck on a core for 207 seconds is realistic. Demonstrates observability with libbpf stackcount and BPFTrace, introduces rtla and the new wq_lat, and shows how dragon + workqueue dump lets you change a work’s cpu mask, affinity and nice value rather than pinning threads. Notes kernel milestones: net RX split (5.2), tasklet→workqueue API changes (6.5/6.9) and ongoing local scoped lock work.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:07Deferred work meaning
- 2:14Deferred work in Linux
- 5:29Softirq problems
- 8:25Softirq mechanics
- 11:39Softirq execution delays
- 14:09BPF for softirq analysis
- 17:48Future softirq tools
- 18:11Adjusting softirq behavior and kernel threads
- 24:12Work queues intro
- 25:57Bound vs unbound queues
- 28:10Work queue surprises
- 30:36Managing work queues the right way
- 33:09Live work queue demo
- 37:04Recent work queue updates
- 38:54Softirqs vs work queues
- 40:21Softirq improvements
- 41:24Q&A
related talks
49mDebugging Methodologies for Realtime Issues in Linux Systems
18mScheduler Tracing With ftrace + eBPF
59mProposing a new tracer to monitor RT task behavior
55mAdvanced Tracing Features to See What Your Application is Waiting On
19mDelay accounting: an underrated feature of the Linux kernel
51mRTLA Timerlat - the next step in scheduling latency analysis
18mNoisy Neighbor Detection with eBPF
19mAdvance the Performance Analysis on RISC-V
