From: Qais Yousef <qyousef@layalina.io>
To: Lukasz Luba <lukasz.luba@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
"Rafael J. Wysocki" <rafael@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Viresh Kumar <viresh.kumar@linaro.org>
Subject: Re: [RFC PATCH 0/7] sched: cpufreq: Remove magic margins
Date: Sun, 10 Sep 2023 20:06:06 +0100 [thread overview]
Message-ID: <20230910190606.6gpnnplix2ybqe3k@airbuntu> (raw)
In-Reply-To: <cf5c628a-e047-b5e0-b2a0-f2b280015d02@arm.com>
On 09/07/23 15:42, Lukasz Luba wrote:
>
>
> On 9/7/23 15:29, Peter Zijlstra wrote:
> > On Thu, Sep 07, 2023 at 02:57:26PM +0100, Lukasz Luba wrote:
> > >
> > >
> > > On 9/7/23 14:26, Peter Zijlstra wrote:
> > > > On Wed, Sep 06, 2023 at 10:18:50PM +0100, Qais Yousef wrote:
> > > >
> > > > > This is probably controversial statement. But I am not in favour of util_est.
> > > > > I need to collect the data, but I think we're better with 16ms PELT HALFLIFE as
> > > > > default instead. But I will need to do a separate investigation on that.
> > > >
> > > > I think util_est makes perfect sense, where PELT has to fundamentally
> > > > decay non-running / non-runnable tasks in order to provide a temporal
> > > > average, DVFS might be best served with a termporal max filter.
> > > >
> > > >
> > >
> > > Since we are here...
> > > Would you allow to have a configuration for
> > > the util_est shifter: UTIL_EST_WEIGHT_SHIFT ?
> > >
> > > I've found other values than '2' better in some scenarios. That helps
> > > to prevent a big task to 'down' migrate from a Big CPU (1024) to some
> > > Mid CPU (~500-700 capacity) or even Little (~120-300).
> >
> > Larger values, I'm thinking you're after? Those would cause the new
> > contribution to weight less, making the function more smooth, right?
>
> Yes, more smooth, because we only use the 'ewma' goodness for decaying
> part (not the raising [1]).
>
> >
> > What task characteristic is tied to this? That is, this seems trivial to
> > modify per-task.
>
> In particular Speedometer test and the main browser task, which reaches
> ~900util, but sometimes vanish and waits for other background tasks
> to do something. In the meantime it can decay and wake-up on
> Mid/Little (which can cause a penalty to score up to 5-10% vs. if
> we pin the task to big CPUs). So, a longer util_est helps to avoid
> at least very bad down migration to Littles...
Warning, this is not a global win! We do want tasks in general to downmigrate
when they sleep. Would be great to avoid biasing towards perf first by default
to fix these special cases.
As I mentioned in other reply, there's a perf/power/thermal impact of these
decisions and it's not a global win. Some might want this to improve their
scores, others might not want that and rather get the worse score but keep
their power budget in check. And it will highly depend on the workload and the
system. Which we can't test everyone of them :(
We did give the power to userspace via uclamp which should make this problem
fixable. And this is readily available. We can't basically know in the kernel
when one way is better than the other without being told explicitly IMHO.
If you try to boot with faster PELT HALFLIFE, would this give you the same
perf/power trade-off?
Thanks
--
Qais Yousef
>
> [1] https://elixir.bootlin.com/linux/v6.5.1/source/kernel/sched/fair.c#L4442
next prev parent reply other threads:[~2023-09-10 19:06 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-27 23:31 [RFC PATCH 0/7] sched: cpufreq: Remove magic margins Qais Yousef
2023-08-27 23:31 ` [RFC PATCH 1/7] sched/pelt: Add a new function to approximate the future util_avg value Qais Yousef
2023-09-06 12:56 ` Dietmar Eggemann
2023-09-06 21:19 ` Qais Yousef
2023-09-07 11:12 ` Dietmar Eggemann
2023-09-10 19:58 ` Qais Yousef
2023-09-13 17:22 ` Dietmar Eggemann
2023-09-16 19:49 ` Qais Yousef
2023-09-16 19:52 ` Qais Yousef
2023-08-27 23:31 ` [RFC PATCH 2/7] sched/pelt: Add a new function to approximate runtime to reach given util Qais Yousef
2023-09-06 12:56 ` Dietmar Eggemann
2023-09-06 20:44 ` Dietmar Eggemann
2023-09-06 21:38 ` Qais Yousef
2023-09-15 9:15 ` Hongyan Xia
2023-09-16 19:56 ` Qais Yousef
2023-08-27 23:31 ` [RFC PATCH 3/7] sched/fair: Remove magic margin in fits_capacity() Qais Yousef
2023-09-06 14:38 ` Dietmar Eggemann
2023-09-06 21:45 ` Qais Yousef
2023-08-27 23:32 ` [RFC PATCH 4/7] sched: cpufreq: Remove magic 1.25 headroom from apply_dvfs_headroom() Qais Yousef
2023-09-07 11:34 ` Peter Zijlstra
2023-09-10 19:23 ` Qais Yousef
2023-08-27 23:32 ` [RFC PATCH 5/7] sched/schedutil: Add a new tunable to dictate response time Qais Yousef
2023-09-06 21:13 ` Dietmar Eggemann
2023-09-06 21:52 ` Qais Yousef
2023-09-07 11:44 ` Peter Zijlstra
2023-09-10 19:25 ` Qais Yousef
2023-08-27 23:32 ` [RFC PATCH 6/7] sched/pelt: Introduce PELT multiplier Qais Yousef
2023-08-27 23:32 ` [RFC PATCH 7/7] cpufreq: Change default transition delay to 2ms Qais Yousef
2023-09-06 9:18 ` [RFC PATCH 0/7] sched: cpufreq: Remove magic margins Lukasz Luba
2023-09-06 21:18 ` Qais Yousef
2023-09-07 7:48 ` Lukasz Luba
2023-09-07 11:53 ` Peter Zijlstra
2023-09-07 13:06 ` Lukasz Luba
2023-09-07 13:29 ` Peter Zijlstra
2023-09-07 13:33 ` Lukasz Luba
2023-09-07 13:38 ` Peter Zijlstra
2023-09-07 13:45 ` Lukasz Luba
2023-09-08 12:51 ` Daniel Bristot de Oliveira
2023-09-12 11:57 ` Lukasz Luba
2023-09-10 18:20 ` Qais Yousef
2023-09-10 18:14 ` Qais Yousef
2023-09-07 13:26 ` Peter Zijlstra
2023-09-07 13:57 ` Lukasz Luba
2023-09-07 14:29 ` Peter Zijlstra
2023-09-07 14:42 ` Lukasz Luba
2023-09-07 20:16 ` Peter Zijlstra
2023-09-12 11:51 ` Lukasz Luba
2023-09-12 14:01 ` Vincent Guittot
2023-09-13 9:53 ` Lukasz Luba
2023-09-12 14:28 ` Peter Zijlstra
2023-09-10 19:06 ` Qais Yousef [this message]
2023-09-10 18:46 ` Qais Yousef
2023-09-07 13:08 ` Peter Zijlstra
2023-09-08 0:17 ` Qais Yousef
2023-09-08 7:40 ` Dietmar Eggemann
2023-09-08 14:07 ` Qais Yousef
2023-09-12 17:18 ` Dietmar Eggemann
2023-09-16 19:38 ` Qais Yousef
2023-09-08 10:25 ` Peter Zijlstra
2023-09-08 13:33 ` Qais Yousef
2023-09-08 13:58 ` Peter Zijlstra
2023-09-08 13:59 ` Peter Zijlstra
2023-09-08 14:11 ` Qais Yousef
2023-09-10 21:17 ` Qais Yousef
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230910190606.6gpnnplix2ybqe3k@airbuntu \
--to=qyousef@layalina.io \
--cc=dietmar.eggemann@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox