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