All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFT][DONOTMERGE][PATCH 0/6] timers/migration: Prioritize lower capacity CPUs as migrators
@ 2026-06-25 16:41 Frederic Weisbecker
  2026-06-25 16:41 ` [PATCH 1/6] timers/migration: Revert per CPU capacity hierarchy Frederic Weisbecker
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Frederic Weisbecker @ 2026-06-25 16:41 UTC (permalink / raw)
  To: Christian Loehle
  Cc: LKML, Frederic Weisbecker, Sehee Jeong, Anna-Maria Behnsen,
	Thomas Gleixner, Peter Zijlstra

Hi,

It has been reported that the timer migration tree wasn't too helpful
on asymetric systems, with timers migrating too often to big capacity
CPUs, waking them more frequently from deep idle state.

Splitting the tree into per CPU capacity hierarchies doesn't seem to
improve the situation.

So here is another proposal: gather CPUs belonging to the same capacity
under the same groups and finally join those capacity groups under a
common root. Exactly in the same way it is done for NUMA systems.

And then always pick up the lowest capacity non-idle CPU group as the
migrator with the hope that handling timers will keep lower capacity
CPUs busy enough to increase their chances to become global idle
migrators.

Please give it a try but make sure you have fewer than 9 capacities
on your system. Handling more will require a bit more throughts. Let's
see first if this is the right way to go.

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
	timers/migration-capacity

HEAD: 28f02a6747ac4343f3596aaa3b749dea95577478
Thanks,
	Frederic
---

Frederic Weisbecker (6):
      timers/migration: Revert per CPU capacity hierarchy
      timers/migration: Defer initialization after capacity topology is setup
      sched/topology: Account asym capacities number
      timers/migration: Group CPUs per capacity
      timers/migration: Prefer lower capacity groups as migrators
      scripts/timer_migration_tree.py: Dump mask of each group

 include/linux/sched/topology.h         |   3 +
 include/trace/events/timer_migration.h |  48 ++--
 kernel/sched/topology.c                |  44 ++++
 kernel/time/timer_migration.c          | 393 +++++++++++++++------------------
 kernel/time/timer_migration.h          |  33 +--
 scripts/timer_migration_tree.py        |  65 +++---
 6 files changed, 288 insertions(+), 298 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-06-25 16:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-25 16:41 [RFT][DONOTMERGE][PATCH 0/6] timers/migration: Prioritize lower capacity CPUs as migrators Frederic Weisbecker
2026-06-25 16:41 ` [PATCH 1/6] timers/migration: Revert per CPU capacity hierarchy Frederic Weisbecker
2026-06-25 16:41 ` [PATCH 2/6] timers/migration: Defer initialization after capacity topology is setup Frederic Weisbecker
2026-06-25 16:41 ` [PATCH 3/6] sched/topology: Account asym capacities number Frederic Weisbecker
2026-06-25 16:41 ` [PATCH 4/6] timers/migration: Group CPUs per capacity Frederic Weisbecker
2026-06-25 16:41 ` [PATCH 5/6] timers/migration: Prefer lower capacity groups as migrators Frederic Weisbecker
2026-06-25 16:41 ` [PATCH 6/6] scripts/timer_migration_tree.py: Dump mask of each group Frederic Weisbecker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.