linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steve Muckle <steve.muckle@linaro.org>
To: Yuyang Du <yuyang.du@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Morten Rasmussen <morten.rasmussen@arm.com>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Juri Lelli <Juri.Lelli@arm.com>,
	Patrick Bellasi <patrick.bellasi@arm.com>,
	Michael Turquette <mturquette@baylibre.com>
Subject: Re: [RFCv7 PATCH 00/10] sched: scheduler-driven CPU frequency selection
Date: Wed, 30 Mar 2016 18:35:23 -0700	[thread overview]
Message-ID: <56FC7EDB.707@linaro.org> (raw)
In-Reply-To: <20160330004506.GB22689@intel.com>

Hi Yuyang,

This series was dropped in favor of Rafael's schedutil. But on the
chance that you're still curious about the test setup used to quantify
the series I'll explain below.

On 03/29/2016 05:45 PM, Yuyang Du wrote:
> Hi Steve,
> 
> On Mon, Feb 22, 2016 at 05:22:40PM -0800, Steve Muckle wrote:
>> The number of times the busy
>> duration exceeds the period of the periodic workload (an "overrun") is
>> also recorded.
> 
> Could you please explain more about overrun?

Each of the 16 workloads is periodic. The period of the workload may not
be long enough to fit the busy ("run") duration at lower CPU
frequencies. If the governor has not raised the CPU frequency high
enough, the busy duration will exceed the period of the workload. This
is an "overrun" and in this synthetic workload represents a deadline
being missed.

>> SCHED_OTHER workload:
>>  wload parameters	  ondemand        interactive     sched	
>> run	period	loops	OR	OH	OR	OH	OR	OH
>> 1	100	100	0	62.07%	0	100.02%	0	78.49%
>> 10	1000	10	0	21.80%	0	22.74%	0	72.56%
>> 1	10	1000	0	21.72%	0	63.08%	0	52.40%
>> 10	100	100	0	8.09%	0	15.53%	0	17.33%
>> 100	1000	10	0	1.83%	0	1.77%	0	0.29%
>> 6	33	300	0	15.32%	0	8.60%	0	17.34%
>> 66	333	30	0	0.79%	0	3.18%	0	12.26%
>> 4	10	1000	0	5.87%	0	10.21%	0	6.15%
>> 40	100	100	0	0.41%	0	0.04%	0	2.68%
>> 400	1000	10	0	0.42%	0	0.50%	0	1.22%
>> 5	9	1000	2	3.82%	1	6.10%	0	2.51%
>> 50	90	100	0	0.19%	0	0.05%	0	1.71%
>> 500	900	10	0	0.37%	0	0.38%	0	1.82%
>> 9	12	1000	6	1.79%	1	0.77%	0	0.26%
>> 90	120	100	0	0.16%	1	0.05%	0	0.49%
>> 900	1200	10	0	0.09%	0	0.26%	0	0.62%
>  
> Could you please also explain what we can learn from the wload vs. OH/OR
> results?

These results are meant to show how the governors perform across varying
workload intensities and periodicities. Higher overhead (OH) numbers
indicate that the completion times of each period of the workload were
closer to what they would be when run at fmin (100% overhead would be as
slow as fmin, 0% overhead would be as fast as fmax). And as described
above, overruns (OR) indicate that the governor was not responsive
enough to finish the work in each period of the workload.

These are just performance metrics so they only tell half the story.
Power is not factored in at all.

This provides a quick sanity check that the governor under test (in this
case, the now defunct schedfreq, or sched for short) performs similarly
to two of the most commonly used governors, ondemand and interactive, in
steady state periodic workloads. In the data above sched looks good for
the most part with the second test case being the biggest exception.

thanks,
Steve


  reply	other threads:[~2016-03-31  1:35 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-23  1:22 [RFCv7 PATCH 00/10] sched: scheduler-driven CPU frequency selection Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 01/10] sched: Compute cpu capacity available at current frequency Steve Muckle
2016-02-23  1:41   ` Rafael J. Wysocki
2016-02-23  9:19     ` Peter Zijlstra
2016-02-26  1:37       ` Rafael J. Wysocki
2016-02-26  9:14         ` Peter Zijlstra
2016-02-23  1:22 ` [RFCv7 PATCH 02/10] cpufreq: introduce cpufreq_driver_is_slow Steve Muckle
2016-02-23  1:31   ` Rafael J. Wysocki
2016-02-26  0:50     ` Michael Turquette
2016-02-26  1:07       ` Steve Muckle
2016-02-26  1:16       ` Rafael J. Wysocki
     [not found]         ` <20160226185503.2278.20479@quark.deferred.io>
2016-02-26 21:00           ` Rafael J. Wysocki
2016-02-23  1:22 ` [RFCv7 PATCH 03/10] sched: scheduler-driven cpu frequency selection Steve Muckle
2016-02-25  3:55   ` Rafael J. Wysocki
2016-02-25  9:21     ` Peter Zijlstra
2016-02-25 21:04       ` Rafael J. Wysocki
2016-02-25  9:28     ` Peter Zijlstra
2016-02-25 21:08       ` Rafael J. Wysocki
2016-02-26  9:18         ` Peter Zijlstra
2016-02-27  0:08           ` Rafael J. Wysocki
2016-03-01 12:57             ` Peter Zijlstra
2016-03-01 19:44               ` Rafael J. Wysocki
2016-02-25 11:04     ` Rafael J. Wysocki
2016-02-26  0:34     ` Steve Muckle
2016-02-27  2:39       ` Rafael J. Wysocki
2016-02-27  4:17         ` Steve Muckle
2016-02-28  2:26           ` Rafael J. Wysocki
2016-03-01 14:31             ` Peter Zijlstra
2016-03-01 20:32               ` Rafael J. Wysocki
2016-03-01 13:26           ` Peter Zijlstra
2016-03-01 13:17       ` Peter Zijlstra
2016-03-02  7:49       ` Michael Turquette
2016-03-03  2:49         ` Rafael J. Wysocki
2016-03-03  3:50           ` Steve Muckle
2016-03-03  9:34             ` Juri Lelli
2016-03-03 13:03         ` Peter Zijlstra
2016-03-03 14:21   ` Ingo Molnar
2016-02-23  1:22 ` [RFCv7 PATCH 04/10] sched/fair: add triggers for OPP change requests Steve Muckle
2016-03-01  6:51   ` Ricky Liang
2016-03-03  3:55     ` Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 05/10] sched/{core,fair}: trigger OPP change request on fork() Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 06/10] sched/fair: cpufreq_sched triggers for load balancing Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 07/10] sched/fair: jump to max OPP when crossing UP threshold Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 08/10] sched: remove call of sched_avg_update from sched_rt_avg_update Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 09/10] sched/deadline: split rt_avg in 2 distincts metrics Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 10/10] sched: rt scheduler sets capacity requirement Steve Muckle
2016-02-23  1:33 ` [RFCv7 PATCH 00/10] sched: scheduler-driven CPU frequency selection Steve Muckle
2016-03-30  0:45 ` Yuyang Du
2016-03-31  1:35   ` Steve Muckle [this message]
2016-03-30 20:22     ` Yuyang Du

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=56FC7EDB.707@linaro.org \
    --to=steve.muckle@linaro.org \
    --cc=Juri.Lelli@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=morten.rasmussen@arm.com \
    --cc=mturquette@baylibre.com \
    --cc=patrick.bellasi@arm.com \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --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).