From: Juri Lelli <juri.lelli@arm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Morten Rasmussen <Morten.Rasmussen@arm.com>,
"mingo@redhat.com" <mingo@redhat.com>,
"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>,
Dietmar Eggemann <Dietmar.Eggemann@arm.com>,
"yuyang.du@intel.com" <yuyang.du@intel.com>,
"preeti@linux.vnet.ibm.com" <preeti@linux.vnet.ibm.com>,
"mturquette@linaro.org" <mturquette@linaro.org>,
"nico@linaro.org" <nico@linaro.org>,
"rjw@rjwysocki.net" <rjw@rjwysocki.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFCv3 PATCH 33/48] sched: Energy-aware wake-up task placement
Date: Thu, 26 Mar 2015 10:21:24 +0000 [thread overview]
Message-ID: <5513DDA4.10802@arm.com> (raw)
In-Reply-To: <20150325181413.GT21418@twins.programming.kicks-ass.net>
On 25/03/15 18:14, Peter Zijlstra wrote:
> On Wed, Mar 25, 2015 at 06:01:22PM +0000, Juri Lelli wrote:
>
>> Yes and no, IMHO. It makes perfect sense to trigger cpufreq on the
>> target_cpu's freq domain, as we know that we are going to add p's
>> utilization there.
>
> Fair point; I mainly wanted to start this discussion so that seems to
> have been a success :-)
>
>> Anyway, I was thinking that we could just
>> rely on triggering points in {en,de}queue_task_fair and task_tick_fair.
>> We end up calling one of them every time we wake-up a task, perform
>> a load balancing decision or just while running the task itself
>> (we have to react to tasks phase changes). This way we should be
>> able to reduce the number of triggering points and be more general
>> at the same time.
>
> The one worry I have with that is that it might need to re-compute which
> P state to request, where in the above (now trimmed quoted) code we
> already figured out which P state we needed to be in, any hook in
> enqueue would have forgotten that.
>
Right. And we currently have some of this re-compute needs. The reason
why I thought we could still give a try to this approach comes from a
few points:
- we can't be fully synchronous yet (cpufreq drivers might sleep) and
if we rely on some asynchronous entity to actually do the freq change
we might already defeat the purpose of passing any sort of guidance
to it (as things can be changed a lot by the time he has to take a
decision); of course, once we'll get there things will change :)
- how do we cope with codepaths that don't rely on usage for taking
decisions? I guess we'll have to modify those to be able to drive
cpufreq, or we could just trade some re-compute burden with this need
- what about other sched classes? I know that this is very premature,
but I can help but thinking that we'll need to do some sort of
aggregation of requests, and if we put triggers in very specialized
points we might lose some of the sched classes separation
Anyway, I'd say we try to look at what we have and then move forward
from there :).
Thanks!
- Juri
>>> So does it make sense to at least put in the right hooks now? I realize
>>> we'll likely take cpufreq out back and feed it to the bears but
>>> something managing P states will be there whatever we'll call the new
>>> fangled thing and this would be the place to hook it still.
>>>
>>
>> We should be able to clean up and post something along this line
>> fairly soon.
>
> Grand!
>
next prev parent reply other threads:[~2015-03-26 10:20 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-04 18:30 [RFCv3 PATCH 00/48] sched: Energy cost model for energy-aware scheduling Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 01/48] sched: add utilization_avg_contrib Morten Rasmussen
2015-02-11 8:50 ` Preeti U Murthy
2015-02-12 1:07 ` Vincent Guittot
2015-02-04 18:30 ` [RFCv3 PATCH 02/48] sched: Track group sched_entity usage contributions Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 03/48] sched: remove frequency scaling from cpu_capacity Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 04/48] sched: Make sched entity usage tracking frequency-invariant Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 05/48] sched: make scale_rt invariant with frequency Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 06/48] sched: add per rq cpu_capacity_orig Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 07/48] sched: get CPU's usage statistic Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 08/48] sched: replace capacity_factor by usage Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 09/48] sched: add SD_PREFER_SIBLING for SMT level Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 10/48] sched: move cfs task on a CPU with higher capacity Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 11/48] sched: Make load tracking frequency scale-invariant Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 12/48] sched: Make usage tracking cpu scale-invariant Morten Rasmussen
2015-03-23 14:46 ` Peter Zijlstra
2015-03-23 19:19 ` Dietmar Eggemann
[not found] ` <OF8A3E3617.0D4400A5-ON48257E3A.001B38D9-48257E3A.002379A4@zte.com.cn>
2015-05-06 9:49 ` Dietmar Eggemann
2015-02-04 18:30 ` [RFCv3 PATCH 13/48] cpufreq: Architecture specific callback for frequency changes Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 14/48] arm: Frequency invariant scheduler load-tracking support Morten Rasmussen
2015-03-23 13:39 ` Peter Zijlstra
2015-03-24 9:41 ` Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 15/48] arm: vexpress: Add CPU clock-frequencies to TC2 device-tree Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 16/48] arm: Cpu invariant scheduler load-tracking support Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 17/48] sched: Get rid of scaling usage by cpu_capacity_orig Morten Rasmussen
[not found] ` <OFFC493540.15A92099-ON48257E35.0026F60C-48257E35.0027A5FB@zte.com.cn>
2015-04-28 16:54 ` Dietmar Eggemann
2015-02-04 18:30 ` [RFCv3 PATCH 18/48] sched: Track blocked utilization contributions Morten Rasmussen
2015-03-23 14:08 ` Peter Zijlstra
2015-03-24 9:43 ` Morten Rasmussen
2015-03-24 16:07 ` Peter Zijlstra
2015-03-24 17:44 ` Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 19/48] sched: Include blocked utilization in usage tracking Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 20/48] sched: Documentation for scheduler energy cost model Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 21/48] sched: Make energy awareness a sched feature Morten Rasmussen
2015-02-04 18:30 ` [RFCv3 PATCH 22/48] sched: Introduce energy data structures Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 23/48] sched: Allocate and initialize " Morten Rasmussen
[not found] ` <OF29F384AC.37929D8E-ON48257E35.002FCB0C-48257E35.003156FE@zte.com.cn>
2015-04-29 15:43 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 24/48] sched: Introduce SD_SHARE_CAP_STATES sched_domain flag Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 25/48] arm: topology: Define TC2 energy and provide it to the scheduler Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 26/48] sched: Compute cpu capacity available at current frequency Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 27/48] sched: Relocated get_cpu_usage() Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 28/48] sched: Use capacity_curr to cap utilization in get_cpu_usage() Morten Rasmussen
2015-03-23 16:14 ` Peter Zijlstra
2015-03-24 11:36 ` Morten Rasmussen
2015-03-24 12:59 ` Peter Zijlstra
2015-02-04 18:31 ` [RFCv3 PATCH 29/48] sched: Highest energy aware balancing sched_domain level pointer Morten Rasmussen
2015-03-23 16:16 ` Peter Zijlstra
2015-03-24 10:52 ` Morten Rasmussen
[not found] ` <OF5977496A.A21A7B96-ON48257E35.002EC23C-48257E35.00324DAD@zte.com.cn>
2015-04-29 15:54 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 30/48] sched: Calculate energy consumption of sched_group Morten Rasmussen
2015-03-13 22:54 ` Sai Gurrappadi
2015-03-16 14:15 ` Morten Rasmussen
2015-03-23 16:47 ` Peter Zijlstra
2015-03-23 20:21 ` Dietmar Eggemann
2015-03-24 10:44 ` Morten Rasmussen
2015-03-24 16:10 ` Peter Zijlstra
2015-03-24 17:39 ` Morten Rasmussen
2015-03-26 15:23 ` Dietmar Eggemann
2015-03-20 18:40 ` Sai Gurrappadi
2015-03-27 15:58 ` Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 31/48] sched: Extend sched_group_energy to test load-balancing decisions Morten Rasmussen
[not found] ` <OF081FBA75.F80B8844-ON48257E37.00261E89-48257E37.00267F24@zte.com.cn>
2015-04-30 20:26 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 32/48] sched: Estimate energy impact of scheduling decisions Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 33/48] sched: Energy-aware wake-up task placement Morten Rasmussen
2015-03-13 22:47 ` Sai Gurrappadi
2015-03-16 14:47 ` Morten Rasmussen
2015-03-18 20:15 ` Sai Gurrappadi
2015-03-27 16:37 ` Morten Rasmussen
2015-03-24 13:00 ` Peter Zijlstra
2015-03-24 15:24 ` Morten Rasmussen
2015-03-24 13:00 ` Peter Zijlstra
2015-03-24 15:42 ` Morten Rasmussen
2015-03-24 15:53 ` Peter Zijlstra
2015-03-24 17:47 ` Morten Rasmussen
2015-03-24 16:35 ` Peter Zijlstra
2015-03-25 18:01 ` Juri Lelli
2015-03-25 18:14 ` Peter Zijlstra
2015-03-26 10:21 ` Juri Lelli [this message]
2015-03-26 10:41 ` Peter Zijlstra
2015-04-27 16:01 ` Michael Turquette
2015-04-28 13:06 ` Peter Zijlstra
2015-02-04 18:31 ` [RFCv3 PATCH 34/48] sched: Bias new task wakeups towards higher capacity cpus Morten Rasmussen
2015-03-24 13:33 ` Peter Zijlstra
2015-03-25 18:18 ` Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 35/48] sched, cpuidle: Track cpuidle state index in the scheduler Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 36/48] sched: Count number of shallower idle-states in struct sched_group_energy Morten Rasmussen
2015-03-24 13:14 ` Peter Zijlstra
2015-03-24 17:13 ` Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 37/48] sched: Determine the current sched_group idle-state Morten Rasmussen
[not found] ` <OF1FDC99CD.22435E74-ON48257E37.001BA739-48257E37.001CA5ED@zte.com.cn>
2015-04-30 20:17 ` Dietmar Eggemann
[not found] ` <OF2F4202E4.8A4AF229-ON48257E38.00312CD4-48257E38.0036ADB6@zte.com.cn>
2015-05-01 15:09 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 38/48] sched: Infrastructure to query if load balancing is energy-aware Morten Rasmussen
2015-03-24 13:41 ` Peter Zijlstra
2015-03-24 16:17 ` Dietmar Eggemann
2015-03-24 13:56 ` Peter Zijlstra
2015-03-24 16:22 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 39/48] sched: Introduce energy awareness into update_sg_lb_stats Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 40/48] sched: Introduce energy awareness into update_sd_lb_stats Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 41/48] sched: Introduce energy awareness into find_busiest_group Morten Rasmussen
2015-02-04 18:31 ` [RFCv3 PATCH 42/48] sched: Introduce energy awareness into find_busiest_queue Morten Rasmussen
2015-03-24 15:21 ` Peter Zijlstra
2015-03-24 18:04 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 43/48] sched: Introduce energy awareness into detach_tasks Morten Rasmussen
2015-03-24 15:25 ` Peter Zijlstra
2015-03-25 23:50 ` Sai Gurrappadi
2015-03-27 15:03 ` Dietmar Eggemann
[not found] ` <OFDCE15EEF.2F536D7F-ON48257E37.002565ED-48257E37.0027A8B9@zte.com.cn>
2015-04-30 20:35 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 44/48] sched: Tipping point from energy-aware to conventional load balancing Morten Rasmussen
2015-03-24 15:26 ` Peter Zijlstra
2015-03-24 18:47 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 45/48] sched: Skip cpu as lb src which has one task and capacity gte the dst cpu Morten Rasmussen
2015-03-24 15:27 ` Peter Zijlstra
2015-03-25 18:44 ` Dietmar Eggemann
[not found] ` <OF9320540C.255228F9-ON48257E37.002A02D1-48257E37.002AB5EE@zte.com.cn>
2015-05-05 10:01 ` Dietmar Eggemann
2015-02-04 18:31 ` [RFCv3 PATCH 46/48] sched: Turn off fast idling of cpus on a partially loaded system Morten Rasmussen
2015-03-24 16:01 ` Peter Zijlstra
2015-02-04 18:31 ` [RFCv3 PATCH 47/48] sched: Enable active migration for cpus of lower capacity Morten Rasmussen
2015-03-24 16:02 ` Peter Zijlstra
2015-02-04 18:31 ` [RFCv3 PATCH 48/48] sched: Disable energy-unfriendly nohz kicks Morten Rasmussen
2015-02-20 19:26 ` Dietmar Eggemann
2015-04-02 12:43 ` [RFCv3 PATCH 00/48] sched: Energy cost model for energy-aware scheduling Vincent Guittot
2015-04-08 13:33 ` Morten Rasmussen
2015-04-09 7:41 ` Vincent Guittot
2015-04-10 14:46 ` Morten Rasmussen
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=5513DDA4.10802@arm.com \
--to=juri.lelli@arm.com \
--cc=Dietmar.Eggemann@arm.com \
--cc=Morten.Rasmussen@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mturquette@linaro.org \
--cc=nico@linaro.org \
--cc=peterz@infradead.org \
--cc=preeti@linux.vnet.ibm.com \
--cc=rjw@rjwysocki.net \
--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 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).