From: Dietmar Eggemann <dietmar.eggemann@arm.com>
To: Yuyang Du <yuyang.du@intel.com>,
peterz@infradead.org, mingo@kernel.org,
linux-kernel@vger.kernel.org
Cc: umgwanakikbuti@gmail.com
Subject: Re: [PATCH 1/2] sched/fair: Fix weight overly small for interactive group entity
Date: Fri, 16 Oct 2015 15:06:00 +0100 [thread overview]
Message-ID: <56210448.7030002@arm.com> (raw)
In-Reply-To: <1444699103-20272-1-git-send-email-yuyang.du@intel.com>
Hi Yuhang,
On 13/10/15 02:18, Yuyang Du wrote:
> Commit 9d89c257dfb9c51a532d69 (sched/fair: Rewrite runnable load
> and utilization average tracking) led to overly small weight for
> interactive group entity. The case can be easily reproduced when
> a number of CPU hogs compete for the CPUs at the same time (thanks
> to Mike). This is largly because the task group's load average
> tracking cross CPUs lags behind the real changes.
>
> We accelerate the group share distribution process by using the
> load.weight of the cfs_rq. This may increase the entire group's
> share, but we have to do so to protect the (fragile) interactive
> tasks from especially CPU hogs.
>
> Reported-by: Mike Galbraith <umgwanakikbuti@gmail.com>
> Signed-off-by: Yuyang Du <yuyang.du@intel.com>
> ---
> kernel/sched/fair.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 700eb54..601a253 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2370,7 +2370,7 @@ static inline long calc_tg_weight(struct task_group *tg, struct cfs_rq *cfs_rq)
> */
In commit 9d89c257dfb9c51a532d69 you also changed the comment on top of
this from 'CPU's actual weight' to 'CPU's real-time load'. I assume here
that the former stands for cfs_rq->load.weight and the latter for
cfs_rq->avg.load_avg. Not sure though ...
> tg_weight = atomic_long_read(&tg->load_avg);
> tg_weight -= cfs_rq->tg_load_avg_contrib;
> - tg_weight += cfs_rq_load_avg(cfs_rq);
> + tg_weight += cfs_rq->load.weight;
>
> return tg_weight;
> }
> @@ -2380,7 +2380,7 @@ static long calc_cfs_shares(struct cfs_rq *cfs_rq, struct task_group *tg)
> long tg_weight, load, shares;
>
> tg_weight = calc_tg_weight(tg, cfs_rq);
> - load = cfs_rq_load_avg(cfs_rq);
> + load = cfs_rq->load.weight;
>
> shares = (tg->shares * load);
> if (tg_weight)
>
I get similar test results on a i7-4750HQ (1*4*2) system
Test setup: 1 cpuhog (sysbench --test cpu --num-threads 1) each in his
own cpu cgroup and each pinned to a cpu
mlayer (threads=8) in a cpu cgroup (BigBuckBunny-
DivXPlusHD.mkv)
runtime: 100s
system: Ubuntu 14.04.3 LTS desktop
sum of the runtime of the mplayer threads:
commit cd126afe838d (before pelt rewrite): 55.6s
4.3.0-rc5 : 36.5s
4.3.0-rc5 + patch 1/2 and 2/2 : 55.7s
next prev parent reply other threads:[~2015-10-16 14:06 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-13 1:18 [PATCH 1/2] sched/fair: Fix weight overly small for interactive group entity Yuyang Du
2015-10-13 1:18 ` [PATCH 2/2] sched/fair: Update task group's load_avg after task migrate Yuyang Du
2015-10-20 9:31 ` [tip:sched/core] sched/fair: Update task group' s load_avg after task migration tip-bot for Yuyang Du
2015-10-16 14:06 ` Dietmar Eggemann [this message]
2015-10-20 9:31 ` [tip:sched/core] sched/fair: Fix overly small weight for interactive group entities tip-bot for Yuyang Du
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=56210448.7030002@arm.com \
--to=dietmar.eggemann@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=umgwanakikbuti@gmail.com \
--cc=yuyang.du@intel.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 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.