linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: vincent.guittot@linaro.org (Vincent Guittot)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH v3 3/6] sched: pack small tasks
Date: Tue, 26 Mar 2013 14:53:30 +0100	[thread overview]
Message-ID: <CAKfTPtAwKXgCW8ausMXiGV8365Lu8CDd4US-OWFLXPpwPYt0qA@mail.gmail.com> (raw)
In-Reply-To: <1364301998.5053.17.camel@laptop>

On 26 March 2013 13:46, Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, 2013-03-22 at 13:25 +0100, Vincent Guittot wrote:
>> During the creation of sched_domain, we define a pack buddy CPU for
>> each CPU
>> when one is available. We want to pack at all levels where a group of
>> CPU can
>> be power gated independently from others.
>> On a system that can't power gate a group of CPUs independently, the
>> flag is
>> set at all sched_domain level and the buddy is set to -1. This is the
>> default
>> behavior.
>> On a dual clusters / dual cores system which can power gate each core
>> and
>> cluster independently, the buddy configuration will be :
>>
>>       | Cluster 0   | Cluster 1   |
>>       | CPU0 | CPU1 | CPU2 | CPU3 |
>> -----------------------------------
>> buddy | CPU0 | CPU0 | CPU0 | CPU2 |
>
> I suppose this is adequate for the 'small' systems you currently have;
> but given that Samsung is already bragging with its 'octo'-core Exynos
> 5 (4+4 big-little thing) does this solution scale?

The packing is only done at MC and CPU level to minimize the number of
transition.

>
> Isn't this basically related to picking the NO_HZ cpu; if the system
> isn't fully symmetric with its power gates you want the NO_HZ cpu to be
> the 'special' cpu. If it is symmetric we really don't care which core
> is left 'running' and we can even select a new pack cpu from the idle
> cores once the old one is fully utilized.

I agree that on a symmetric system, we don't really care about which
core is selected but we want to use the same one whenever possible to
prevent a ping pong between several cores or groups of cores, which is
power consuming. By forcing a NOHZ cpu, your background activity will
smoothly pack on this CPU and will not be spread on your system.
When a CPU is fully loaded, we don't fall in a low CPU load use case
and the periodic load balance can handle the situation to select a new
target CPU which is close to the buddy CPU

>
> Re-using (or integrating) with NO_HZ has the dual advantage that you'll
> make NO_HZ do the right thing for big-little (you typically want a
> little core to be the one staying 'awake' and once someone makes NO_HZ
> scale this all gets to scale along with it.
>

I think that you have answered to this question in your comment of
patch 5, isn't it?

Vincent

  reply	other threads:[~2013-03-26 13:53 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-22 12:25 [RFC PATCH v3 0/6] sched: packing small tasks Vincent Guittot
2013-03-22 12:25 ` [RFC PATCH v3 1/6] Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking" Vincent Guittot
2013-03-22 12:25 ` [RFC PATCH v3 2/6] sched: add a new SD_SHARE_POWERDOMAIN flag for sched_domain Vincent Guittot
2013-03-22 12:25 ` [RFC PATCH v3 3/6] sched: pack small tasks Vincent Guittot
2013-03-26 12:26   ` Peter Zijlstra
2013-03-27 10:21     ` Preeti U Murthy
2013-03-27 11:00       ` Vincent Guittot
2013-04-26 10:30         ` Peter Zijlstra
2013-04-26 11:34           ` Vincent Guittot
2013-04-26 10:18       ` Peter Zijlstra
2013-04-26 10:32         ` Preeti U Murthy
2013-03-26 12:37   ` Peter Zijlstra
2013-03-26 13:00     ` Vincent Guittot
2013-03-27  4:33     ` Preeti U Murthy
2013-03-27  4:48       ` Alex Shi
2013-03-27  8:51         ` Peter Zijlstra
2013-03-26 12:46   ` Peter Zijlstra
2013-03-26 13:53     ` Vincent Guittot [this message]
2013-03-26 15:29     ` Arjan van de Ven
2013-03-27  8:46       ` Peter Zijlstra
2013-03-27  8:54         ` Vincent Guittot
2013-03-27  9:00           ` Peter Zijlstra
2013-03-27 11:18             ` Catalin Marinas
2013-03-27 14:13               ` Peter Zijlstra
2013-03-27 16:36                 ` Catalin Marinas
2013-03-27 17:18                   ` Nicolas Pitre
2013-03-27 17:37                     ` Catalin Marinas
2013-03-27 17:20                   ` Vincent Guittot
2013-03-27 18:01                     ` Catalin Marinas
2013-03-27 15:37           ` Nicolas Pitre
2013-03-22 12:25 ` [RFC PATCH v3 4/6] sched: secure access to other CPU statistics Vincent Guittot
2013-03-26 12:50   ` Peter Zijlstra
2013-03-26 13:06     ` Vincent Guittot
2013-03-22 12:25 ` [RFC PATCH v3 5/6] sched: pack the idle load balance Vincent Guittot
2013-03-26 12:52   ` Peter Zijlstra
2013-03-26 14:03     ` Vincent Guittot
2013-03-26 14:42       ` Peter Zijlstra
2013-03-26 15:55         ` Vincent Guittot
2013-03-27  4:56           ` Alex Shi
2013-03-27  8:05             ` Vincent Guittot
2013-03-27  8:47               ` Alex Shi
2013-03-27 10:30                 ` Vincent Guittot
2013-03-27 13:32                   ` Alex Shi
2013-03-27  8:49             ` Peter Zijlstra
2013-04-05 11:08         ` Vincent Guittot
2013-04-22  5:45           ` Preeti U Murthy
     [not found]             ` <CAKfTPtCCCifC=c+xjjnAH_HSqkR80PiQoddQKXPHuZwZawbvcA@mail.gmail.com>
2013-04-23  2:23               ` Alex Shi
2013-04-23  4:57                 ` Preeti U Murthy
2013-04-23 15:30                 ` Arjan van de Ven
2013-04-26 10:54                   ` Peter Zijlstra
2013-04-23  4:36               ` Preeti U Murthy
2013-03-22 12:25 ` [RFC PATCH v3 6/6] ARM: sched: clear SD_SHARE_POWERDOMAIN Vincent Guittot
2013-03-23 11:55 ` [RFC PATCH v3 0/6] sched: packing small tasks Preeti U Murthy
2013-03-25  9:58   ` 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=CAKfTPtAwKXgCW8ausMXiGV8365Lu8CDd4US-OWFLXPpwPYt0qA@mail.gmail.com \
    --to=vincent.guittot@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.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).