Re: [PATCH 0/5] sched: Lazy preemption muck

From: Peter Zijlstra
Date: Wed Oct 09 2024 - 03:46:52 EST


On Tue, Oct 08, 2024 at 05:32:32PM +0200, Sebastian Andrzej Siewior wrote:
> On 2024-10-07 09:46:09 [+0200], Peter Zijlstra wrote:
> > Hi!
> >
> > During LPC Thomas reminded me that the lazy preemption stuff was not there yet.
> >
> > So here goes, robot says it builds, and I checked both a regular and PREEMPT_RT
> > build boots and can change the mode.
> >
> > Please have a poke.
>
> While comparing this vs what I have:
> - need_resched()
> It checked both (tif_need_resched_lazy() || tif_need_resched()) while
> now it only looks at tif_need_resched().
> Also ensured that raw_irqentry_exit_cond_resched() does not trigger on
> lazy.
> I guess you can argue both ways what makes sense, just noting…

Right, changing need_resched() would mean auditing all existing users,
and there's *MANY* of them.

> - __account_cfs_rq_runtime() and hrtick_start_fair()
> Both have a resched_curr() instead of resched_curr_lazy(). Is this on
> purpose?

Sorta, so __account_cfs_rq_runtime() is bandwidth enforcement, and I
figured that since bandwidth is like resource isolation it should be as
accurate as possible.

hrtick is disabled by default (because expensive) and so it doesn't
matter much, but it's purpose is to increase accuracy and hence I left
it untouched for now.