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

From: Tejun Heo
Date: Mon Jan 29 2024 - 20:22:42 EST


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