From: Frederic Weisbecker <frederic@kernel.org>
To: Christian Loehle <christian.loehle@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>,
Sehee Jeong <sehee1.jeong@samsung.com>,
Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH] timers/migration: Temporarily disable per capacity hierarchies
Date: Tue, 16 Jun 2026 15:32:47 +0200 [thread overview]
Message-ID: <ajFQf4tSB6sr75rU@localhost.localdomain> (raw)
In-Reply-To: <afa2414f-040a-49a4-85ce-d0fbcce24e44@arm.com>
Le Tue, Jun 09, 2026 at 04:34:17PM +0100, Christian Loehle a écrit :
> On 6/9/26 13:33, Frederic Weisbecker wrote:
> > Some workloads with different CPU capacities consume more power with
> > timer migration than before. The recently introduced per capacity
> > hierarchies were supposed to alleviate this problem. However it appears
> > to also regress other types of workloads, especially when plenty of
> > capacities live together in the same machine.
> >
> > Disable the feature until a reasonable solution is found.
> >
> > Fixes: 098cbaad8e57 ("timers/migration: Split per-capacity hierarchies")
> > Reported-by: Christian Loehle <christian.loehle@arm.com>
> > Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
> > ---
> > kernel/time/timer_migration.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c
> > index 548d84955f4c..e9d96d96e251 100644
> > --- a/kernel/time/timer_migration.c
> > +++ b/kernel/time/timer_migration.c
> > @@ -1473,7 +1473,7 @@ static unsigned int tmigr_get_capacity(int cpu)
> > * timekeeper must then belong to the same hierarchy as all the nohz_full
> > * CPUs. Simply turn off capacity awareness when nohz_full is running.
> > */
> > - if (tick_nohz_full_enabled())
> > + if (tick_nohz_full_enabled() || !IS_ENABLED(CONFIG_BROKEN))
> > return SCHED_CAPACITY_SCALE;
> > else
> > return arch_scale_cpu_capacity(cpu);
>
> FWIW
> Reviewed-by: Christian Loehle <christian.loehle@arm.com>
> Thanks for looking into this after the late response!
>
> I have something based on avg_idle which doesn't look unreasonable on first glance,
> I'll do some more testing and hopefully post it with some number soon!
Here is another thing we can try.
We can build the hierarchy just like we do with NUMA but instead of
NUMA nodes, use the capacity (initial idea of Thomas). But connect them
through a common root.
This is roughly equivalent to per capacity hierarchies, but all those
hierarchies are connected eventually to the root.
And then upon CPU wakup, actively "steal" the migrator duty from higher
capacity CPU.
This way lower capacity CPUs have more chances to process global timers
and they also have more chances to stay active due to that added work
and also ground work tasks woken up by those timers (hopefully locally).
I can try something like that, I'll just need to use atomic64_t for
struct tmigr_group::migr_state to store the capacity of the migrator.
Thanks.
--
Frederic Weisbecker
SUSE Labs
next prev parent reply other threads:[~2026-06-16 13:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-09 12:33 [PATCH] timers/migration: Temporarily disable per capacity hierarchies Frederic Weisbecker
2026-06-09 15:30 ` [tip: timers/core] " tip-bot2 for Frederic Weisbecker
2026-06-09 15:34 ` [PATCH] " Christian Loehle
2026-06-16 13:32 ` Frederic Weisbecker [this message]
2026-06-16 13:33 ` Christian Loehle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ajFQf4tSB6sr75rU@localhost.localdomain \
--to=frederic@kernel.org \
--cc=anna-maria@linutronix.de \
--cc=christian.loehle@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sehee1.jeong@samsung.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.