From: Dietmar Eggemann <dietmar.eggemann@arm.com>
To: Valentin Schneider <valentin.schneider@arm.com>,
Morten Rasmussen <morten.rasmussen@arm.com>,
Vincent Guittot <vincent.guittot@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
gaku.inami.xh@renesas.com,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCHv4 00/12] sched/fair: Migrate 'misfit' tasks on asymmetric capacity systems
Date: Mon, 30 Jul 2018 16:30:27 +0200 [thread overview]
Message-ID: <7bad2238-369c-f61c-0a51-eb14204e0429@arm.com> (raw)
In-Reply-To: <98eb0daf-4467-3790-ec80-90b746807392@arm.com>
On 07/26/2018 07:14 PM, Valentin Schneider wrote:
> Hi,
>
> On 09/07/18 16:08, Morten Rasmussen wrote:
>> On Fri, Jul 06, 2018 at 12:18:27PM +0200, Vincent Guittot wrote:
>>> Hi Morten,
>>>
>>> On Wed, 4 Jul 2018 at 12:18, Morten Rasmussen <morten.rasmussen@arm.com> wrote:
[...]
> With that out of the way, I did some lmbench runs:
>> lat_mem_rd 10 1024
>
> With ASYM_PACKING, I still see lmbench tasks remaining on LITTLE CPUs while
> bigs are free, because ASYM_PACKING only does explicit active balancing on
> CPU_NEWLY_IDLE balancing - otherwise it'll rely on the nr_balance_failed counter.
>
> However, that counter can be reset before it reaches the threshold at which
> active balance is done, which can lead to huge upmigration delays (almost a
> full second). I also see the same kind of issues on Juno r0.
>
> This could be resolved by extending ASYM_PACKING active balancing to
> non NEWLY_IDLE cases, but then we'd be thrashing everything. That's another
> argument for basing upmigration on task load-tracking signals, as we can
> determine which tasks need active balancing much faster than the
> nr_balance_failed counter way while not active balancing the world.
The task layout of the test looks like n=85 always running tasks (each
for ~ 1.25ms on big or little) and they all get created and run one
after the other. So on a big cpu, their util values go from 512 to 1024
and from 223 to 446 on little cpu (Juno board). Latter thanks to
Quentin's 'sched/fair: Fix util_avg of new tasks for asymmetric systems'.
root@juno:~# cat /sys/devices/system/cpu/cpu[01]/cpu_capacity
446
1024
> (lat_mem_rd 10 1024) with ASYM_PACKING:
...
> 4.0 148.66 <-----
> 4.5 10.191
...
> 7.5 10.203
> 8.0 154.354 <-----
I ran the test affine to big, little and all cpus on tip/sched/core w/o
ASYM_PACKING or Misfit:
cputype: big little all
cpumask: 0x06 0x39 0xff
mem size <---- latency ---->
0.00098 3.668 3.595 3.669
0.00195 3.668 3.594 3.594
0.00293 3.668 3.593 3.595
0.00391 3.669 3.596 3.595
...
3.75000 58.687 121.934 122.293
4.00000 57.054 121.771 120.489
4.50000 56.914 121.851 56.729
5.00000 57.347 121.777 56.975
5.50000 57.705 121.738 68.981
6.00000 57.935 121.728 57.542
6.50000 58.119 121.694 121.799
7.00000 58.194 121.502 57.844
7.50000 58.258 121.684 58.050
8.00000 58.293 121.725 58.030
9.00000 58.309 121.793 58.188
10.00000 58.561 122.252 122.078
There is no diff between big and little cpus with small memory sizes,
just with the MB range.
If I look into the trace for 'all' it turns out that their are cases in
which, even if the task only run for ~15% of the time on big, the
latency value is printed as when it was running affine to big. So using
the latency value as an indicator where the task was scheduled is IMHO
not really possible.
next prev parent reply other threads:[~2018-07-30 14:30 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-04 10:17 [PATCHv4 00/12] sched/fair: Migrate 'misfit' tasks on asymmetric capacity systems Morten Rasmussen
2018-07-04 10:17 ` [PATCHv4 01/12] sched: Add static_key for asymmetric cpu capacity optimizations Morten Rasmussen
2018-07-31 10:59 ` Peter Zijlstra
2018-08-02 15:15 ` Morten Rasmussen
2018-09-10 10:13 ` [tip:sched/core] sched/topology: Add static_key for asymmetric CPU " tip-bot for Morten Rasmussen
2018-07-04 10:17 ` [PATCHv4 02/12] sched/fair: Add group_misfit_task load-balance type Morten Rasmussen
2018-09-10 10:13 ` [tip:sched/core] sched/fair: Add 'group_misfit_task' " tip-bot for Morten Rasmussen
2018-07-04 10:17 ` [PATCHv4 03/12] sched: Add sched_group per-cpu max capacity Morten Rasmussen
2018-09-10 10:14 ` [tip:sched/core] sched/fair: Add sched_group per-CPU " tip-bot for Morten Rasmussen
2018-07-04 10:17 ` [PATCHv4 04/12] sched/fair: Consider misfit tasks when load-balancing Morten Rasmussen
2018-09-10 10:14 ` [tip:sched/core] " tip-bot for Morten Rasmussen
2018-07-04 10:17 ` [PATCHv4 05/12] sched/fair: Kick nohz balance if rq->misfit_task_load Morten Rasmussen
2018-09-10 10:15 ` [tip:sched/core] " tip-bot for Valentin Schneider
2018-07-04 10:17 ` [PATCHv4 06/12] sched/fair: Change prefer_sibling type to bool Morten Rasmussen
2018-09-10 10:15 ` [tip:sched/core] sched/fair: Change 'prefer_sibling' " tip-bot for Valentin Schneider
2018-07-04 10:17 ` [PATCHv4 07/12] sched: Change root_domain->overload type to int Morten Rasmussen
2018-09-10 10:16 ` [tip:sched/core] sched/core: " tip-bot for Valentin Schneider
2018-07-04 10:17 ` [PATCHv4 08/12] sched: Wrap rq->rd->overload accesses with READ/WRITE_ONCE Morten Rasmussen
2018-09-10 10:17 ` [tip:sched/core] sched/fair: Wrap rq->rd->overload accesses with READ/WRITE_ONCE() tip-bot for Valentin Schneider
2018-07-04 10:17 ` [PATCHv4 09/12] sched/fair: Set rq->rd->overload when misfit Morten Rasmussen
2018-09-10 10:17 ` [tip:sched/core] " tip-bot for Valentin Schneider
2018-07-04 10:17 ` [PATCHv4 10/12] sched/fair: Don't move tasks to lower capacity cpus unless necessary Morten Rasmussen
2018-09-10 10:18 ` [tip:sched/core] sched/fair: Don't move tasks to lower capacity CPUs " tip-bot for Chris Redpath
2018-07-04 10:17 ` [PATCHv4 11/12] sched/core: Disable SD_ASYM_CPUCAPACITY for root_domains without asymmetry Morten Rasmussen
2018-07-05 13:31 ` Quentin Perret
2018-07-05 14:13 ` Morten Rasmussen
2018-07-05 15:03 ` Quentin Perret
2018-07-20 13:54 ` Morten Rasmussen
2018-07-04 10:17 ` [PATCHv4 12/12] sched/core: Disable SD_PREFER_SIBLING on asymmetric cpu capacity domains Morten Rasmussen
2018-07-06 10:18 ` Vincent Guittot
2018-07-06 14:31 ` Morten Rasmussen
2018-07-31 12:17 ` Vincent Guittot
2018-07-31 12:33 ` Valentin Schneider
2018-08-06 10:20 ` Vincent Guittot
2018-08-06 10:53 ` Valentin Schneider
2018-08-10 9:30 ` Vincent Guittot
2018-09-10 10:18 ` [tip:sched/core] sched/core: Disable SD_PREFER_SIBLING on asymmetric CPU " tip-bot for Morten Rasmussen
2018-07-06 10:18 ` [PATCHv4 00/12] sched/fair: Migrate 'misfit' tasks on asymmetric capacity systems Vincent Guittot
2018-07-09 15:08 ` Morten Rasmussen
2018-07-26 17:14 ` Valentin Schneider
2018-07-30 14:30 ` Dietmar Eggemann [this message]
2018-07-31 12:13 ` Vincent Guittot
2018-07-31 12:14 ` Dietmar Eggemann
2018-07-31 12:11 ` Vincent Guittot
2018-07-31 12:00 ` Peter Zijlstra
2018-07-31 12:10 ` Valentin Schneider
2018-07-31 12:50 ` Morten Rasmussen
2018-08-17 1:57 ` Joel Fernandes
2018-08-20 2:50 ` Gaku Inami
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=7bad2238-369c-f61c-0a51-eb14204e0429@arm.com \
--to=dietmar.eggemann@arm.com \
--cc=gaku.inami.xh@renesas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=morten.rasmussen@arm.com \
--cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).