Make RCU do less (and disturb CPUs less)!
summary
RCU activity keeps timers awake and prevents deep CPU idle, with graphics FDs queuing callbacks every ~16 ms and single-callback wakeups causing wasted wakeups. A BPF profiler called RCUtop BPF tool finds the sources; flipping config to avoid per-CPU callbacks yields a 12% power improvement on video playback, and a new lazy RCU API that queues callbacks without triggering grace-period processing adds ~4% more by batching and delaying execution for seconds unless memory pressure or synchronize_rcu forces immediate work. Dynamic delay based on callback frequency is proposed.
AI-written summary · about
chapters (18)
- 0:00Introduction and speakers
- 1:08RCU power efficiency issues
- 4:00Idle CPU disturbance by RCU
- 6:10RCU no-CB config benefits
- 7:15RCU top tool for callbacks
- 9:47Synchronize RCU and callbacks
- 11:21RCU activity in Android idle
- 15:35Garbage collection in idle systems
- 15:59Lazy RCU callbacks proposal
- 18:35Documentation and API risks
- 20:19Fixing call_rcu usage cases
- 23:17Legitimate call_rcu use cases
- 24:00RCU expedited vs lazy callbacks
- 25:44Dynamic callback batching
- 29:40Simplify RCU APIs
- 31:06Runtime latency-based decisions
- 32:56Tools to detect RCU issues
- 34:22Kernel Shark improvements
related talks
45mRCU Office Hour
30mSo you want to torture RCU?
44mGetting Around to It: Deferred Work in the Linux Kernel
51mTuning RT Kernel to Improve Schedule Performance with Intel Platform
53mPREEMPT_RT - How Not to Break It.
38mNews from PREEMPT_RT
53mPREEMPT_RT - How Not to Break It.
47mReal-Time Linux: What Is Next?
