Re: [RFC] sched,livepatch: call klp_try_switch_task in __cond_resched

From: Josh Poimboeuf
Date: Tue May 10 2022 - 12:53:01 EST


On Tue, May 10, 2022 at 04:07:42PM +0000, Rik van Riel wrote:
> On Tue, 2022-05-10 at 17:44 +0200, Petr Mladek wrote:
> > On Tue 2022-05-10 13:33:13, Rik van Riel wrote:
> > > On Tue, 2022-05-10 at 09:56 +0200, Petr Mladek wrote:
> > >
> >
> > > I think the best approach for us might be to just track what
> > > is causing the transition failures, and send in trivial patches
> > > to make the outer loop in such kernel threads do the same KLP
> > > transition the idle task already does.
> >
> > I am afraid that is a way to hell. We might end up in doing
> > really crazy things if we want to complete the transition
> > in one minute.
> >
> Now I wonder if we could just hook up a preempt notifier
> for kernel live patches. All the distro kernels already
> need the preempt notifier for KVM, anyway...
>
> Is it crazy? Maybe a little.
>
> Is it self contained, and something that could be done
> without inserting any extra code into a hot path while
> not in the middle of a KLP transition? Yes.
>
> I'd be happy to come up with a patch that does that,
> unless anybody has good reasons I should not :)

I wouldn't be opposed to that, but how does it solve this problem? If
as Peter said cond_resched() can be a NOP, then preemption would have to
be from an interrupt, in which case frame pointers aren't reliable.

--
Josh