Re: [PATCH] timers: Exclude isolated cpus from timer migation
From: Gabriele Monaco
Date: Fri Apr 11 2025 - 03:08:51 EST
On Thu, 2025-04-10 at 17:32 +0200, Frederic Weisbecker wrote:
> Le Thu, Apr 10, 2025 at 05:05:52PM +0200, Gabriele Monaco a écrit :
> > I'm not understanding what is going to be invasive in this case.
> > Aren't we just talking about not allowing isolcpus to pull timers
> > from
> > other cpus?
>
> Right, but in order to do that you need to avoid remotely executing
> timers. And for that we need your initial patch (after reviews have
> been addressed). Right?
>
> > Let's ignore for now the global timers started on those CPUs, I'm
> > not
> > aware of complaints regarding that.
> >
> > As far as I understand, the change would allow timer migration to
> > work
> > normally out of isolcpus and among housekeeping ones, we are not
> > forcing any migration that would potentially introduce overhead or
> > missed timers.
> > Or am I oversimplifying it?
>
> Global timers only migrate:
>
> a) When a CPU goes offline (but they should be migrated to
> a housekeeping CPU)
>
> b) When a timer executes remotely and re-enqueues itself.
>
> In order to handle b), you must make sure an isolated CPU
> can't execute timers remotely. Hence why it must be set
> as not available like you did.
>
> Or am I missing something else?
>
Mmh, my patch is in fact allowing isolated cores to still migrate
everything if they go offline.
However I don't think housekeeping CPUs can execute remote timers on
isolated ones. That is not a problem for offline CPUs (they won't start
anything and do the migration while offlining is enough), but we should
allow it here.
I may be missing something, but isn't it what [1] is doing?
Thanks,
Gabriele
[1] -
https://elixir.bootlin.com/linux/v6.13.7/source/kernel/time/timer_migration.c#L976