From: Dietmar Eggemann <dietmar.eggemann@arm.com>
To: Parth Shah <parth@linux.ibm.com>,
Vincent Guittot <vincent.guittot@linaro.org>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
"open list:THERMAL" <linux-pm@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Patrick Bellasi <patrick.bellasi@matbug.net>,
Valentin Schneider <valentin.schneider@arm.com>,
Pavel Machek <pavel@ucw.cz>, Doug Smythies <dsmythies@telus.net>,
Quentin Perret <qperret@qperret.net>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Tim Chen <tim.c.chen@linux.intel.com>,
Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: Re: [RFC v5 4/6] sched/fair: Tune task wake-up logic to pack small background tasks on fewer cores
Date: Wed, 9 Oct 2019 16:26:03 +0200 [thread overview]
Message-ID: <eef32b9e-1f24-e8a9-cd91-dcc6546a636f@arm.com> (raw)
In-Reply-To: <86dc25e4-9f19-627f-9581-d74608b7f20c@linux.ibm.com>
On 09/10/2019 10:57, Parth Shah wrote:
[...]
>> On 07/10/2019 18:53, Parth Shah wrote:
>>>
>>>
>>> On 10/7/19 5:49 PM, Vincent Guittot wrote:
>>>> On Mon, 7 Oct 2019 at 10:31, Parth Shah <parth@linux.ibm.com> wrote:
[...]
>>> Maybe I can add just below the sched_energy_present(){...} construct giving
>>> precedence to EAS? I'm asking this because I remember Patrick telling me to
>>> leverage task packing for android as well?
>>
>> I have a hard time imaging that Turbosched will be used in Android next
>> to EAS in the foreseeable future.
>>
>> First of all, EAS provides task packing already on Performance Domain
>> (PD) level (a.k.a. as cluster on traditional 2-cluster Arm/Arm64
>> big.LITTLE or DynamIQ (with Phantom domains (out of tree solution)).
>> This is where we can safe energy without harming latency.
>>
>> See the tests results under '2.1 Energy test case' in
>>
>> https://lore.kernel.org/r/20181203095628.11858-1-quentin.perret@arm.com
>>
>> There are 10 to 50 small (classified solely by task utilization) tasks
>> per test case and EAS shows an effect on energy consumption by packing
>> them onto the PD (cluster) of the small CPUs.
>>
>> And second, the CPU supported topology is different to the one you're
>> testing on.
>>
>
> cool. I was just keeping in mind the following quote
> " defining a generic spread-vs-pack wakeup policy which is something
> Android also could benefit from " (https://lkml.org/lkml/2019/6/28/628)
The main thing is that in case we want to introduce a new functionality
into CFS, we should try hard to use existing infrastructure (or
infrastructure there is agreement on that we'll need it) as much as
possible.
If I understand Patrick here correctly, he suggested not to use uclamp
but the task latency nice approach. There is agreement that we would
need something like this as infrastructure:
https://lore.kernel.org/r/20190830174944.21741-1-subhra.mazumdar@oracle.com
So p->latency_nice is suitable to include your p->flags |=
PF_CAN_BE_PACKED concept nicely.
>
> BTW, IIUC that does task consolidation only on single CPU unless
> rd->overload is set, right?
Task consolidation on Performance Domains (PDs) w/ multiple CPUs (e.g.
on a per-cluster PD big.LITTLE system) only works when the system is not
overutilized:
6326 int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
6327 {
...
6337 if (!pd || *READ_ONCE(rd->overutilized)*)
6338 goto fail;
...
[...]
next prev parent reply other threads:[~2019-10-09 14:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-07 8:30 [RFC v5 0/6] TurboSched: A scheduler for sustaining Turbo Frequencies for longer durations Parth Shah
2019-10-07 8:30 ` [RFC v5 1/6] sched/core: Add manual background task classification using sched_setattr syscall Parth Shah
2019-10-07 8:30 ` [RFC v5 2/6] sched: Introduce switch to enable TurboSched for task packing Parth Shah
2019-10-07 8:30 ` [RFC v5 3/6] sched/core: Update turbo_sched count only when required Parth Shah
2019-10-07 8:30 ` [RFC v5 4/6] sched/fair: Tune task wake-up logic to pack small background tasks on fewer cores Parth Shah
2019-10-07 12:19 ` Vincent Guittot
2019-10-07 16:53 ` Parth Shah
2019-10-08 16:20 ` Vincent Guittot
2019-10-09 8:46 ` Parth Shah
2019-10-08 16:52 ` Dietmar Eggemann
2019-10-09 8:57 ` Parth Shah
2019-10-09 14:26 ` Dietmar Eggemann [this message]
2019-10-09 17:02 ` Parth Shah
2019-10-10 14:53 ` Dietmar Eggemann
2019-10-07 8:30 ` [RFC v5 5/6] sched/fair: Provide arch hook to find domain for non idle core search scan Parth Shah
2019-10-07 8:30 ` [RFC v5 6/6] powerpc: Set turbo domain to NUMA node for task packing Parth Shah
[not found] ` <20191008132842.6612-1-hdanton@sina.com>
2019-10-09 9:22 ` [RFC v5 4/6] sched/fair: Tune task wake-up logic to pack small background tasks on fewer cores Parth Shah
2019-10-09 11:34 ` Vincent Guittot
2019-10-09 16:55 ` Parth Shah
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=eef32b9e-1f24-e8a9-cd91-dcc6546a636f@arm.com \
--to=dietmar.eggemann@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=dsmythies@telus.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=parth@linux.ibm.com \
--cc=patrick.bellasi@matbug.net \
--cc=pavel@ucw.cz \
--cc=peterz@infradead.org \
--cc=qperret@qperret.net \
--cc=rafael.j.wysocki@intel.com \
--cc=tim.c.chen@linux.intel.com \
--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.