From: Matt Fleming <matt@codeblueprint.co.uk>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: peterz@infradead.org, mingo@kernel.org,
linux-kernel@vger.kernel.org, Morten.Rasmussen@arm.com,
dietmar.eggemann@arm.com, kernellwp@gmail.com,
yuyang.du@intel.com, umgwanakikbuti@gmail.com
Subject: Re: [PATCH 1/2 v2] sched: fix find_idlest_group for fork
Date: Sat, 3 Dec 2016 23:25:03 +0000 [thread overview]
Message-ID: <20161203232503.GJ20785@codeblueprint.co.uk> (raw)
In-Reply-To: <1480088073-11642-2-git-send-email-vincent.guittot@linaro.org>
On Fri, 25 Nov, at 04:34:32PM, Vincent Guittot wrote:
> During fork, the utilization of a task is init once the rq has been
> selected because the current utilization level of the rq is used to set
> the utilization of the fork task. As the task's utilization is still
> null at this step of the fork sequence, it doesn't make sense to look for
> some spare capacity that can fit the task's utilization.
> Furthermore, I can see perf regressions for the test "hackbench -P -g 1"
> because the least loaded policy is always bypassed and tasks are not
> spread during fork.
>
> With this patch and the fix below, we are back to same performances as
> for v4.8. The fix below is only a temporary one used for the test until a
> smarter solution is found because we can't simply remove the test which is
> useful for others benchmarks
>
> @@ -5708,13 +5708,6 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
>
> avg_cost = this_sd->avg_scan_cost;
>
> - /*
> - * Due to large variance we need a large fuzz factor; hackbench in
> - * particularly is sensitive here.
> - */
> - if ((avg_idle / 512) < avg_cost)
> - return -1;
> -
> time = local_clock();
>
> for_each_cpu_wrap(cpu, sched_domain_span(sd), target, wrap) {
>
OK, I need to point out that I didn't apply the above hunk when
testing this patch series. But I wouldn't have expected that to impact
our fork-intensive workloads so much. Let me know if you'd like me to
re-run with it applied.
I don't see much of a difference, positive or negative, for the
majority of the test machines, it's mainly a wash.
However, the following 4-cpu Xeon E5504 machine does show a nice win,
with thread counts in the mid-range (note, the second column is number
of hackbench groups, where each group has 40 tasks),
hackbench-process-pipes
4.9.0-rc6 4.9.0-rc6 4.9.0-rc6
tip-sched fix-fig-for-fork fix-sig
Amean 1 0.2193 ( 0.00%) 0.2014 ( 8.14%) 0.1746 ( 20.39%)
Amean 3 0.4489 ( 0.00%) 0.3544 ( 21.04%) 0.3284 ( 26.83%)
Amean 5 0.6173 ( 0.00%) 0.4690 ( 24.02%) 0.4977 ( 19.37%)
Amean 7 0.7323 ( 0.00%) 0.6367 ( 13.05%) 0.6267 ( 14.42%)
Amean 12 0.9716 ( 0.00%) 1.0187 ( -4.85%) 0.9351 ( 3.75%)
Amean 16 1.2866 ( 0.00%) 1.2664 ( 1.57%) 1.2131 ( 5.71%)
next prev parent reply other threads:[~2016-12-03 23:25 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-25 15:34 [PATCH 0/2 v2] sched: improve spread of tasks during fork Vincent Guittot
2016-11-25 15:34 ` [PATCH 1/2 v2] sched: fix find_idlest_group for fork Vincent Guittot
2016-11-28 17:01 ` Matt Fleming
2016-11-28 17:20 ` Vincent Guittot
2016-11-29 10:57 ` Morten Rasmussen
2016-11-29 11:42 ` Peter Zijlstra
2016-11-29 11:44 ` Matt Fleming
2016-11-29 12:30 ` Peter Zijlstra
2016-11-29 14:46 ` Morten Rasmussen
2016-12-05 8:48 ` Peter Zijlstra
2016-11-29 13:04 ` Vincent Guittot
2016-11-29 14:50 ` Morten Rasmussen
2016-11-29 14:57 ` Vincent Guittot
2016-12-03 23:25 ` Matt Fleming [this message]
2016-12-05 9:17 ` Vincent Guittot
2016-11-25 15:34 ` [PATCH 2/2 v2] sched: use load_avg for selecting idlest group Vincent Guittot
2016-11-30 12:49 ` Morten Rasmussen
2016-11-30 13:49 ` Vincent Guittot
2016-11-30 13:54 ` Vincent Guittot
2016-11-30 14:24 ` Morten Rasmussen
2016-12-02 15:20 ` Vincent Guittot
2016-12-02 22:24 ` Matt Fleming
2016-11-30 14:23 ` Morten Rasmussen
2016-12-03 3:31 ` Brendan Gregg
2016-12-03 21:47 ` Matt Fleming
2016-12-05 9:27 ` Vincent Guittot
2016-12-05 13:35 ` Matt Fleming
2016-12-08 14:09 ` Matt Fleming
2016-12-08 14:33 ` Vincent Guittot
2016-11-28 17:02 ` [PATCH 0/2 v2] sched: improve spread of tasks during fork Matt Fleming
2016-11-28 17:20 ` 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=20161203232503.GJ20785@codeblueprint.co.uk \
--to=matt@codeblueprint.co.uk \
--cc=Morten.Rasmussen@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=kernellwp@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=umgwanakikbuti@gmail.com \
--cc=vincent.guittot@linaro.org \
--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.