Re: [PATCH v2 2/2] sched_ext: Add cpuperf support

From: Vincent Guittot
Date: Tue Jul 09 2024 - 09:38:18 EST


On Mon, 8 Jul 2024 at 23:09, Tejun Heo <tj@xxxxxxxxxx> wrote:
>
> Hello, Vincent.
>
> On Mon, Jul 08, 2024 at 09:51:08PM +0200, Vincent Guittot wrote:
> > > Unless we add a WARN_ON_ONCE, if it doesn't behave as expected, the end
> > > result will most likely be cpufreq sometimes picking a higher freq than
> > > requested, which won't be the easiest to notice. Would you be against adding
> > > WARN_ON_ONCE(scx_switched_all && !util) too?
> >
> > A WARN_ON_ONCE to detect misbehavior would be ok
>
> I tried this and it's a bit problematic. Migrating out all the tasks do
> bring the numbers pretty close to zero but the math doesn't work out exactly
> and it often leaves 1 in the averages. While the fair class is in use, they

hmm interesting, such remaining small value could be expected for
load_avg but not with util_avg which is normally a direct propagation.
Do you have a sequence in particular ?

> would decay quickly through __update_blocked_fair(); however, when all tasks
> are switched to sched_ext, that function doesn't get called and the
> remaining small value never decays.
>
> Now, the value being really low, it doesn't really matter but it's an
> unnecessary complication. I can make sched_ext keep calling
> __update_blocked_fair() in addition to update_other_load_avgs() to decay
> fair's averages but that seems a lot more complicated than having one
> scx_switched_all() test.
>
> Thanks.
>
> --
> tejun