mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Qais Yousef <qyousef@layalina.io>
To: Hongyan Xia <hongyan.xia2@arm.com>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org, Lukasz Luba <lukasz.luba@arm.com>,
	Wei Wang <wvw@google.com>, Xuewen Yan <xuewen.yan94@gmail.com>,
	Hank <han.lin@mediatek.com>,
	Jonathan JMChen <Jonathan.JMChen@mediatek.com>
Subject: Re: [PATCH v2 1/3] sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0
Date: Fri, 30 Jun 2023 12:41:40 +0100	[thread overview]
Message-ID: <20230630114140.w3kiirw6lyjdvb6r@airbuntu> (raw)
In-Reply-To: <c5722699-d366-3f26-635d-a45f746a3658@arm.com>

On 06/07/23 15:52, Hongyan Xia wrote:
> Hi Qais,
> 
> On 2023-02-11 17:50, Qais Yousef wrote:
> > [...]
> > > 
> > > So EAS keeps packing on the cheaper PD/clamped OPP.
> > 
> > Which is the desired behavior for uclamp_max?
> > 
> > The only issue I see is that we want to distribute within a pd. Which is
> > something I was going to work on and send after later - but can lump it in this
> > series if it helps.
> 
> I more or less share the same concern with Dietmar, which is packing things
> on the same small CPU when everyone has spare cpu_cap of 0.
> 
> I wonder if this could be useful: On the side of cfs_rq->avg.util_avg, we
> have a cfs_rq->avg.util_avg_uclamp_max. It is keeping track of util_avg, but
> each task on the rq is capped at its uclamp_max value, so even if there's
> two always-running tasks with uclamp_max values of 100 with no idle time,
> the cfs_rq only sees cpu_util() of 200 and still has remaining capacity of
> 1024 - 200, not 0. This also helps balancing the load when rqs have no idle
> time. Even if two CPUs both have no idle time, but one is running a single
> task clamped at 100, the other running 2 such tasks, the first sees a
> remaining capacity of 1024 - 100, while the 2nd is 1024 - 200, so we still
> prefer the first one.

If I understood correctly you're suggesting do accounting of the sum of
uclamp_max for all the enqueued tasks?

I think we discussed this in the past. Can't remember the details now, but
adding additional accounting seemed undeseriable.

And I had issue with treating uclamp_max as a bandwidth hint rather than
a performance requirements hint. Limiting a task to 200 means it can't run
faster than this, but it doesn't mean it is not allowed to consume more
bandwidth than 200. Nice value and cfs bandwidth controllers should be used for
that.

> And I wonder if this could also help calculating energy when there's no idle
> time under uclamp_max. Instead of seeing a util_avg at 1024, we actually see
> a lower value. This is also what cpu_util_next() does in Android's sum
> aggregation, but I'm thinking of maintaining it right beside util_avg so
> that we don't have to sum up everything every time.

I haven't thought about how to improve the EM calculations to be honest, I see
this as a secondary problem compared to the other issue we need to fix first.

It seems load_avg can grow unboundedly, can you look at using this signal to
distribute on a cluster and as a hint we might be better off spilling to other
if they're already running at a perf level <= uclamp_max?


Thanks

--
Qais Yousef

  reply	other threads:[~2023-06-30 11:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-05 22:43 [PATCH v2 0/3] Fix a couple of corner cases in feec() when using uclamp_max Qais Yousef
2023-02-05 22:43 ` [PATCH v2 1/3] sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0 Qais Yousef
2023-02-07  9:45   ` Vincent Guittot
2023-02-09 18:02     ` Dietmar Eggemann
2023-02-11 17:50       ` Qais Yousef
2023-02-14 12:47         ` Dietmar Eggemann
2023-02-14 18:09           ` Qais Yousef
2023-02-21 12:20             ` Dietmar Eggemann
2023-02-23 15:12               ` Qais Yousef
2023-05-22  8:30         ` Lukasz Luba
     [not found]           ` <20230531182243.r4d5teuijiadwp2c@airbuntu>
2023-06-05 11:29             ` Dietmar Eggemann
2023-06-30 11:30               ` Qais Yousef
2023-06-05 13:07             ` Lukasz Luba
2023-06-07 14:52         ` Hongyan Xia
2023-06-30 11:41           ` Qais Yousef [this message]
2023-02-11 17:28     ` Qais Yousef
2023-02-20 17:02       ` Vincent Guittot
2023-02-21 12:05         ` Qais Yousef
2023-02-22 10:59           ` Vincent Guittot
2023-02-23 15:13             ` Qais Yousef
2023-06-07 11:50       ` Hongyan Xia
2023-06-30 11:44         ` Qais Yousef
2023-07-17 21:49         ` Qais Yousef
2023-02-05 22:43 ` [PATCH v2 2/3] sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0 Qais Yousef
2023-02-07 10:04   ` Vincent Guittot
2023-02-08 11:52     ` Dietmar Eggemann
2023-02-11 18:01       ` Qais Yousef
2023-02-14 12:47         ` Dietmar Eggemann
2023-02-14 18:10           ` Qais Yousef
2023-02-20 17:24           ` Vincent Guittot
2023-02-05 22:43 ` [PATCH v2 3/3] sched/tp: Add new tracepoint to track compute energy computation Qais Yousef
2023-02-20 11:22   ` Lukasz Luba
2023-02-21 12:08     ` Qais Yousef
2023-02-21 12:10       ` Lukasz Luba

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=20230630114140.w3kiirw6lyjdvb6r@airbuntu \
    --to=qyousef@layalina.io \
    --cc=Jonathan.JMChen@mediatek.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=han.lin@mediatek.com \
    --cc=hongyan.xia2@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukasz.luba@arm.com \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=vincent.guittot@linaro.org \
    --cc=wvw@google.com \
    --cc=xuewen.yan94@gmail.com \
    /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

all inboxes | Powered by JetHome®