Re: [RFC PATCH 07/86] Revert "livepatch,sched: Add livepatch task switching to cond_resched()"

From: Josh Poimboeuf
Date: Thu Nov 09 2023 - 12:27:11 EST


On Tue, Nov 07, 2023 at 06:16:09PM -0500, Steven Rostedt wrote:
> On Tue, 7 Nov 2023 13:56:53 -0800
> Ankur Arora <ankur.a.arora@xxxxxxxxxx> wrote:
>
> > This reverts commit e3ff7c609f39671d1aaff4fb4a8594e14f3e03f8.
> >
> > Note that removing this commit reintroduces "live patches failing to
> > complete within a reasonable amount of time due to CPU-bound kthreads."
> >
> > Unfortunately this fix depends quite critically on PREEMPT_DYNAMIC and
> > existence of cond_resched() so this will need an alternate fix.

We definitely don't want to introduce a regression, something will need
to be figured out before removing cond_resched().

We could hook into preempt_schedule_irq(), but that wouldn't work for
non-ORC.

Another option would be to hook into schedule(). Then livepatch could
set TIF_NEED_RESCHED on remaining unpatched tasks. But again if they go
through the preemption path then we have the same problem for non-ORC.

Worst case we'll need to sprinkle cond_livepatch() everywhere :-/

--
Josh