Re: [PATCH v2 1/1] wq: Avoid using isolated cpus' timers on queue_delayed_work

From: Leonardo Bras
Date: Mon Jan 29 2024 - 21:58:31 EST


On Mon, Jan 29, 2024 at 03:22:33PM -1000, Tejun Heo wrote:
> On Mon, Jan 29, 2024 at 10:00:46PM -0300, Leonardo Bras wrote:
> > When __queue_delayed_work() is called, it chooses a cpu for handling the
> > timer interrupt. As of today, it will pick either the cpu passed as
> > parameter or the last cpu used for this.
> >
> > This is not good if a system does use CPU isolation, because it can take
> > away some valuable cpu time to:
> > 1 - deal with the timer interrupt,
> > 2 - schedule-out the desired task,
> > 3 - queue work on a random workqueue, and
> > 4 - schedule the desired task back to the cpu.
> >
> > So to fix this, during __queue_delayed_work(), if cpu isolation is in
> > place, pick a random non-isolated cpu to handle the timer interrupt.
> >
> > As an optimization, if the current cpu is not isolated, use it instead
> > of looking for another candidate.
> >
> > Signed-off-by: Leonardo Bras <leobras@xxxxxxxxxx>
>
> Applied to wq/for-6.9.
>
> Thanks.
>
> --
> tejun
>

Thank you!
Leo