Re: [RFC PATCH 00/86] Make the kernel preemptible

From: Steven Rostedt
Date: Wed Nov 08 2023 - 10:15:58 EST


On Wed, 8 Nov 2023 09:43:10 +0000
David Laight <David.Laight@xxxxxxxxxx> wrote:

> > Policies:
> >
> > A - preemption=none: run to completion
> > B - preemption=voluntary: run to completion, unless a task of higher
> > sched-class awaits
> > C - preemption=full: optimized for low-latency. Preempt whenever a higher
> > priority task awaits.
>
> If you remove cond_resched() then won't both B and C require an extra IPI.
> That is probably OK for RT tasks but could get expensive for
> normal tasks that aren't bound to a specific cpu.

What IPI is extra?

>
> I suspect C could also lead to tasks being pre-empted just before
> they sleep (eg after waking another task).
> There might already be mitigation for that, I'm not sure if
> a voluntary sleep can be done in a non-pre-emptible section.

No, voluntary sleep can not be done in a preemptible section.

-- Steve