Push based load-balancing for fair tasks
summary
Prototype RFC sent after OSPM implements a push-based balancer that replaces global idle masks with a global counter plus a chain of per-LLC nohz masks stored in HD shared objects and traversed from idle CPU context; maintaining per-CPU masks proved too expensive on server workloads. Push currently executes from a busy CPU and adds latency, so offloading via smp_call_function to the idle target is proposed. Experiments show the push approach speeds some cases but “works sometimes and fails equally badly”; a bailout using nr_idle_scans reduces waste from affinity and pileups.
AI-written summary · about
chapters (8)
- 0:00Introduction to push load balancing
- 1:03Preparatory patches for push mechanism
- 5:00Optimizing SK domain shared assignments
- 8:37Per-LLC idle CPU masks for push
- 13:10Idle load balancing trade-offs
- 16:28Experimental push mechanism results
- 19:43Bailout mechanism and affinity issues
- 21:50Handling delayed tasks in load balancing
