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

From: Tejun Heo
Date: Mon Jul 08 2024 - 17:09:33 EST


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
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