From: Mel Gorman <mgorman@suse.de>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com,
dietmar.eggemann@arm.com, rostedt@goodmis.org,
bsegall@google.com, linux-kernel@vger.kernel.org,
pauld@redhat.com, parth@linux.ibm.com,
valentin.schneider@arm.com
Subject: Re: [RFC 3/4] sched/fair: replace runnable load average by runnable average
Date: Wed, 12 Feb 2020 14:30:23 +0000 [thread overview]
Message-ID: <20200212143023.GV3420@suse.de> (raw)
In-Reply-To: <20200211174651.10330-4-vincent.guittot@linaro.org>
On Tue, Feb 11, 2020 at 06:46:50PM +0100, Vincent Guittot wrote:
> Now that runnable_load_avg is not more used, we can replace it by a new
> signal that will highlight the runnable pressure on a cfs_rq. This signal
> track the waiting time of tasks on rq and can help to better define the
> state of rqs.
>
> At now, only util_avg is used to define the state of a rq:
> A rq with more that around 80% of utilization and more than 1 tasks is
> considered as overloaded.
>
> But the util_avg signal of a rq can become temporaly low after that a task
> migrated onto another rq which can bias the classification of the rq.
>
> When tasks compete for the same rq, their runnable average signal will be
> higher than util_avg as it will include the waiting time and we can use
> this signal to better classify cfs_rqs.
>
> The new runnable_avg will track the runnable time of a task which simply
> adds the waiting time to the running time. The runnbale _avg of cfs_rq
> will be the /Sum of se's runnable_avg and the runnable_avg of group entity
> will follow the one of the rq similarly to util_avg.
>
s/runnbale/runnable/
Otherwise, all I can do is give a heads-up that I will not be able to
review this patch and the next patch properly in the short-term. While the
new metric appears to have a sensible definition, I've not spent enough
time comparing/contrasting the pro's and con's of PELT implementation
details or their consequences. I am not confident I can accurately
predict whether this is better or if there are corner cases that make
poor placement decisions based on fast changes of runnable_avg. At least
not within a reasonable amount of time.
This caught my attention though
> @@ -4065,8 +4018,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
> * - Add its new weight to cfs_rq->load.weight
> */
> update_load_avg(cfs_rq, se, UPDATE_TG | DO_ATTACH);
> + se_update_runnable(se);
> update_cfs_group(se);
> - enqueue_runnable_load_avg(cfs_rq, se);
> account_entity_enqueue(cfs_rq, se);
>
> if (flags & ENQUEUE_WAKEUP)
I don't think the ordering matters any more because of what was removed
from update_cfs_group. Unfortunately, I'm not 100% confident so am
bringing it to your attention in case it does.
--
Mel Gorman
SUSE Labs
next prev parent reply other threads:[~2020-02-12 14:30 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-11 17:46 [PATCH 0/4] remove runnable_load_avg and improve group_classify Vincent Guittot
2020-02-11 17:46 ` [PATCH 1/4] sched/fair: reorder enqueue/dequeue_task_fair path Vincent Guittot
2020-02-12 13:20 ` Mel Gorman
2020-02-12 14:47 ` Vincent Guittot
2020-02-12 16:11 ` Mel Gorman
2020-02-11 17:46 ` [RFC 2/4] sched/numa: replace runnable_load_avg by load_avg Vincent Guittot
2020-02-12 13:37 ` Mel Gorman
2020-02-12 15:03 ` Vincent Guittot
2020-02-12 16:04 ` Mel Gorman
2020-02-12 19:49 ` Mel Gorman
2020-02-12 21:29 ` Mel Gorman
2020-02-13 8:05 ` Vincent Guittot
2020-02-13 9:24 ` Mel Gorman
[not found] ` <20200213131658.9600-1-hdanton@sina.com>
2020-02-13 13:46 ` Mel Gorman
2020-02-13 15:00 ` Phil Auld
2020-02-13 15:14 ` Mel Gorman
2020-02-13 16:11 ` Vincent Guittot
2020-02-13 16:34 ` Mel Gorman
2020-02-13 16:38 ` Vincent Guittot
2020-02-13 17:02 ` Mel Gorman
2020-02-13 17:15 ` Vincent Guittot
2020-02-11 17:46 ` [RFC 3/4] sched/fair: replace runnable load average by runnable average Vincent Guittot
2020-02-12 14:30 ` Mel Gorman [this message]
2020-02-14 7:42 ` Vincent Guittot
2020-02-13 17:36 ` Peter Zijlstra
2020-02-14 7:43 ` Vincent Guittot
2020-02-11 17:46 ` [RFC 4/4] sched/fair: Take into runnable_avg to classify group Vincent Guittot
2020-02-13 18:32 ` Valentin Schneider
2020-02-13 18:37 ` Valentin Schneider
2020-02-14 7:48 ` Vincent Guittot
2020-02-11 21:04 ` [PATCH 0/4] remove runnable_load_avg and improve group_classify Mel Gorman
2020-02-12 8:16 ` Vincent Guittot
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=20200212143023.GV3420@suse.de \
--to=mgorman@suse.de \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=parth@linux.ibm.com \
--cc=pauld@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=valentin.schneider@arm.com \
--cc=vincent.guittot@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.