Make RCU do less (save power)!
summary
Default RCU keeps the scheduler tick firing during idle and generates thousands of tiny wakes (2500/sec observed), which suppresses deep package C‑states and costs ~10% SOC+memory power; fixing the ticks raises deepest package residency from 18% to 45% (≈25% absolute). Two mitigation paths are tested: enabling CONFIG_RCU_NO_CBS (moves callbacks to a kernel thread) and a new call_rcu_lazy API plus a ten‑second bypass list; tooling RCU top identifies noisy callbacks. Jiffies‑till‑first FQS breaks boot and tracing, so selective lazy callbacks give ~4% extra power savings without large regressions.
AI-written summary · about
chapters (13)
- 0:00Introduction and speakers
- 1:07RCU background and power issues
- 7:43Impact of RCU ticks on power
- 11:41Package C states and power impact
- 15:11Why RCU keeps tick on during idle
- 17:19Config RC nohz_full CPU
- 19:47Frequent callbacks and tricho effect
- 23:18Android static image use case
- 25:30Jiffies till first FQS limitations
- 30:05Call RCU lazy API proposal
- 32:12Bypass list for lazy callbacks
- 33:57Android results with RCU lazy
- 36:50Acknowledgments and Q&A
related talks
45mRCU Office Hour
30mSo you want to torture RCU?
32mCPU Power Saving Methods for Real-time Workloads
51mTuning RT Kernel to Improve Schedule Performance with Intel Platform
53mPREEMPT_RT - How Not to Break It.
53mPREEMPT_RT - How Not to Break It.
51mTuning RT Kernel to Improve Schedule Performance with Intel Platform
56mPMWG: CPU Idle governor and irq prediction
