~/talk

Do nothing fast: How to scale idle cpus?

links:none on file
slides:none on file

A global raw spinlock in the idle path and a small delay loop during do_idle unexpectedly speeds a scheduler-heavy hackbench on a 192-core AMD EPYC, taking the benchmark from 49s to 29s (≈40% faster). Reproduced with perf stats on a 32-group, pipe-based hackbench, the investigation builds a per-task predictor (per-core 8-bit saturating counters) to bias runqueue selection toward previous CPUs and pack communicating tasks by topology; migration rates drop and hackbench improves, but client–server workloads regress and power effects remain unmeasured.

AI-written summary · about

  1. 0:00Introduction to scheduler scaling
  2. 1:50Benchmark workload improvements
  3. 3:59Run queue metrics and contention
  4. 6:27Predictor for task placement
  5. 9:42Runnable vs utilization metrics
  6. 11:27Predictor implementation details
  7. 13:15Alternative approaches to heuristics
  8. 14:44Load balancing and wake-up strategies
  9. 15:49Power efficiency considerations
  10. 16:30Backtracking and capacity analysis
  11. 17:36Performance improvement factors
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.