All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Muckle <steve.muckle@linaro.org>
To: Vincent Guittot <vincent.guittot@linaro.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Juri Lelli <juri.lelli@arm.com>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH 6/6] cpufreq: schedutil: New governor based on scheduler utilization data
Date: Thu, 3 Mar 2016 12:06:42 -0800	[thread overview]
Message-ID: <56D89952.1010606@linaro.org> (raw)
In-Reply-To: <CAKfTPtAtF4Yax9RrwjqfPqpfhtUxYRb-PDj+B_sZehEfQgsSsQ@mail.gmail.com>

On 03/03/2016 05:07 AM, Vincent Guittot wrote:
> I mainly want to prevent any useless and periodic frequency switch
> because of an utilization that changes with the current frequency (if
> frequency invariance is not used) and that can make the formula
> selects another frequency than the current one. That what i can see
> when testing it .
> 
> Sorry for the late reply, i was trying to do some test on my board but
> was facing some crash issue (not link with your patchset). So i have
> done some tests and i can see such instable behavior. I have generated
> a load of 33% at max frequency (3ms runs every 9ms) and i can see the
> frequency that toggles without any good reason. Saying that, i can see
> similar thing with ondemand.

FWIW I ran some performance numbers on my chromebook 2. Initially I
forgot to bring in the frequency invariance support but that yielded an
opportunity to see the impact of it.

The tests below consist of a periodic workload. The OH (overhead)
numbers show how close the workload got to running as slow as fmin (100%
= as slow as powersave gov, 0% = as fast as perf gov). The OR (overrun)
number is the count of instances where the busy work exceeded the period.

First a comparison of schedutil with and without frequency invariance.
Run and period are in milliseconds.

			scu (no inv)	scu (w/inv)	
run	period	busy %	OR	OH	OR	OH
1	100	1.00%	0	79.72%	0	95.86%
10	1000	1.00%	0	24.52%	0	71.61%
1	10	10.00%	0	21.25%	0	41.78%
10	100	10.00%	0	26.06%	0	47.96%
100	1000	10.00%	0	6.36%	0	26.03%
6	33	18.18%	0	15.67%	0	31.61%
66	333	19.82%	0	8.94%	0	29.46%
4	10	40.00%	0	6.26%	0	12.93%
40	100	40.00%	0	6.93%	2	14.08%
400	1000	40.00%	0	1.65%	0	11.58%
5	9	55.56%	0	3.70%	0	7.70%
50	90	55.56%	1	4.19%	6	8.06%
500	900	55.56%	0	1.35%	5	6.94%
9	12	75.00%	0	1.60%	56	3.59%
90	120	75.00%	0	1.88%	21	3.94%
900	1200	75.00%	0	0.73%	4	4.41%

Frequency invariance causes schedutil overhead to increase noticeably. I
haven't dug into traces or anything. Perhaps this is due to the
algorithm overshooting then overcorrecting etc., I do not yet know.

Here is a comparison, with frequency invariance, of ondemand and
interactive with schedfreq and schedutil. The first two columns (run and
period) are omitted so the table will fit.

	ondemand	interactive	schedfreq	schedutil	
busy %	OR	OH	OR	OH	OR	OH	OR	OH
1.00%	0	68.96%	0	100.04%	0	78.49%	0	95.86%
1.00%	0	25.04%	0	22.59%	0	72.56%	0	71.61%
10.00%	0	21.75%	0	63.08%	0	52.40%	0	41.78%
10.00%	0	12.17%	0	14.41%	0	17.33%	0	47.96%
10.00%	0	2.57%	0	2.17%	0	0.29%	0	26.03%
18.18%	0	12.39%	0	9.39%	0	17.34%	0	31.61%
19.82%	0	3.74%	0	3.42%	0	12.26%	0	29.46%
40.00%	2	6.26%	1	12.23%	0	6.15%	0	12.93%
40.00%	0	0.47%	0	0.05%	0	2.68%	2	14.08%
40.00%	0	0.60%	0	0.50%	0	1.22%	0	11.58%
55.56%	2	4.25%	5	5.97%	0	2.51%	0	7.70%
55.56%	0	1.89%	0	0.04%	0	1.71%	6	8.06%
55.56%	0	0.50%	0	0.47%	0	1.82%	5	6.94%
75.00%	2	1.65%	1	0.46%	0	0.26%	56	3.59%
75.00%	0	1.68%	0	0.05%	0	0.49%	21	3.94%
75.00%	0	0.28%	0	0.23%	0	0.62%	4	4.41%

Aside from the 2nd and 3rd tests schedutil is showing decreased
performance across the board. The fifth test is particularly bad.

The catch is that I do not have power numbers to go with this data, as
I'm not currently equipped to gather them. So more analysis is
definitely needed to capture the full story.

thanks,
Steve

  reply	other threads:[~2016-03-03 20:06 UTC|newest]

Thread overview: 159+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-02  1:56 [PATCH 0/6] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-02  2:04 ` [PATCH 1/6] cpufreq: Reduce cpufreq_update_util() overhead a bit Rafael J. Wysocki
2016-03-03  5:48   ` Viresh Kumar
2016-03-03 11:47   ` Juri Lelli
2016-03-03 13:04     ` Peter Zijlstra
2016-03-02  2:05 ` [PATCH 2/6][Resend] cpufreq: acpi-cpufreq: Make read and write operations more efficient Rafael J. Wysocki
2016-03-02  2:08 ` [PATCH 3/6] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-03  5:53   ` Viresh Kumar
2016-03-03 19:26     ` Rafael J. Wysocki
2016-03-04  5:49       ` Viresh Kumar
2016-03-02  2:10 ` [PATCH 4/6] cpufreq: governor: Move abstract gov_tunables code to a seperate file Rafael J. Wysocki
2016-03-03  6:03   ` Viresh Kumar
2016-03-02  2:12 ` [PATCH 5/6] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-03  6:00   ` Viresh Kumar
2016-03-04  2:15     ` Rafael J. Wysocki
2016-03-03 11:16   ` Peter Zijlstra
2016-03-03 20:56     ` Rafael J. Wysocki
2016-03-03 21:12       ` Peter Zijlstra
2016-03-03 11:18   ` Peter Zijlstra
2016-03-03 19:39     ` Rafael J. Wysocki
2016-03-02  2:27 ` [PATCH 6/6] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-02 17:10   ` Vincent Guittot
2016-03-02 17:58     ` Rafael J. Wysocki
2016-03-02 22:49       ` Rafael J. Wysocki
2016-03-03 12:20         ` Peter Zijlstra
2016-03-03 12:32           ` Juri Lelli
2016-03-03 16:24           ` Rafael J. Wysocki
2016-03-03 16:37             ` Peter Zijlstra
2016-03-03 16:47               ` Peter Zijlstra
2016-03-04  1:14                 ` Rafael J. Wysocki
2016-03-03 16:55               ` Juri Lelli
2016-03-03 16:56                 ` Peter Zijlstra
2016-03-03 17:14                   ` Juri Lelli
2016-03-03 14:01         ` Vincent Guittot
2016-03-03 15:38           ` Peter Zijlstra
2016-03-03 16:28             ` Peter Zijlstra
2016-03-03 16:42               ` Peter Zijlstra
2016-03-03 17:28               ` Dietmar Eggemann
2016-03-03 18:26                 ` Peter Zijlstra
2016-03-03 19:14                   ` Dietmar Eggemann
2016-03-08 13:09                   ` Peter Zijlstra
2016-03-03 18:58               ` Rafael J. Wysocki
2016-03-03 13:07       ` Vincent Guittot
2016-03-03 20:06         ` Steve Muckle [this message]
2016-03-03 20:20           ` Rafael J. Wysocki
2016-03-03 21:37             ` Steve Muckle
2016-03-07  2:41               ` Rafael J. Wysocki
2016-03-08 11:27                 ` Peter Zijlstra
2016-03-08 18:00                   ` Rafael J. Wysocki
2016-03-08 19:26                     ` Peter Zijlstra
2016-03-08 20:05                       ` Rafael J. Wysocki
2016-03-09 10:15                         ` Juri Lelli
2016-03-09 23:41                           ` Rafael J. Wysocki
2016-03-10  4:30                             ` Juri Lelli
2016-03-10 21:01                               ` Rafael J. Wysocki
2016-03-10 23:19                             ` Michael Turquette
2016-03-10 23:19                               ` Michael Turquette
2016-03-09 16:39                         ` Peter Zijlstra
2016-03-09 23:28                           ` Rafael J. Wysocki
2016-03-10  3:44                             ` Vincent Guittot
2016-03-10 10:07                               ` Peter Zijlstra
2016-03-10 10:26                                 ` Vincent Guittot
     [not found]                                 ` <CAKfTPtCbjgbJn+68NJPCnmPFtcHD0wGmZRYaw37zSqPXNpo_Uw@mail.gmail.com>
2016-03-10 10:30                                   ` Peter Zijlstra
2016-03-10 10:56                                     ` Peter Zijlstra
2016-03-10 22:28                                       ` Rafael J. Wysocki
2016-03-10  8:43                             ` Peter Zijlstra
2016-03-04  2:56 ` [PATCH v2 0/10] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-04  2:58   ` [PATCH v2 1/10] cpufreq: Reduce cpufreq_update_util() overhead a bit Rafael J. Wysocki
2016-03-09 12:39     ` Peter Zijlstra
2016-03-09 14:17       ` Rafael J. Wysocki
2016-03-09 15:29         ` Peter Zijlstra
2016-03-09 21:35           ` Rafael J. Wysocki
2016-03-10  9:19             ` Peter Zijlstra
2016-03-04  2:59   ` [PATCH v2 2/10][Resend] cpufreq: acpi-cpufreq: Make read and write operations more efficient Rafael J. Wysocki
2016-03-04  3:01   ` [PATCH v2 3/10] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-04  5:52     ` Viresh Kumar
2016-03-04  3:03   ` [PATCH v2 4/10] cpufreq: governor: Move abstract gov_attr_set code to seperate file Rafael J. Wysocki
2016-03-04  5:52     ` Viresh Kumar
2016-03-04  3:05   ` [PATCH v2 5/10] cpufreq: Move governor attribute set headers to cpufreq.h Rafael J. Wysocki
2016-03-04  5:53     ` Viresh Kumar
2016-03-04  3:07   ` [PATCH v2 6/10] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-04 22:18     ` Steve Muckle
2016-03-04 22:32       ` Rafael J. Wysocki
2016-03-04 22:40         ` Rafael J. Wysocki
2016-03-04 23:18           ` Rafael J. Wysocki
2016-03-04 23:56             ` Steve Muckle
2016-03-05  0:18               ` Rafael J. Wysocki
2016-03-05 11:58                 ` Ingo Molnar
2016-03-05 16:49             ` Peter Zijlstra
2016-03-06  2:17               ` Rafael J. Wysocki
2016-03-07  8:00                 ` Peter Zijlstra
2016-03-07 13:15                   ` Rafael J. Wysocki
2016-03-07 13:32                     ` Peter Zijlstra
2016-03-07 13:42                       ` Rafael J. Wysocki
2016-03-04 22:58         ` Rafael J. Wysocki
2016-03-04 23:59           ` Steve Muckle
2016-03-04  3:12   ` [PATCH v2 7/10] cpufreq: Rework the scheduler hooks for triggering updates Rafael J. Wysocki
2016-03-04  3:14   ` [PATCH v2 8/10] cpufreq: Move scheduler-related code to the sched directory Rafael J. Wysocki
2016-03-04  3:18   ` [PATCH v2 9/10] cpufreq: sched: Re-introduce cpufreq_update_util() Rafael J. Wysocki
2016-03-04 10:50     ` Juri Lelli
2016-03-04 12:58       ` Rafael J. Wysocki
2016-03-04 13:30     ` [PATCH v3 " Rafael J. Wysocki
2016-03-04 21:21       ` Steve Muckle
2016-03-04 21:27         ` Rafael J. Wysocki
2016-03-04 21:36           ` Rafael J. Wysocki
2016-03-04  3:35   ` [PATCH v2 10/10] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-04 11:26     ` Juri Lelli
2016-03-04 13:19       ` Rafael J. Wysocki
2016-03-04 15:56       ` Srinivas Pandruvada
2016-03-08  2:23   ` [PATCH v3 0/7] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-08  2:25     ` [PATCH v3 1/7][Resend] cpufreq: Rework the scheduler hooks for triggering updates Rafael J. Wysocki
2016-03-09 13:41       ` Peter Zijlstra
2016-03-09 14:02         ` Rafael J. Wysocki
2016-03-08  2:26     ` [PATCH v3 2/7][Resend] cpufreq: Move scheduler-related code to the sched directory Rafael J. Wysocki
2016-03-08  2:28     ` [PATCH v3 3/7][Resend] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-08  2:29     ` [PATCH v3 4/7][Resend] cpufreq: governor: Move abstract gov_attr_set code to seperate file Rafael J. Wysocki
2016-03-08  2:38     ` [PATCH v3 5/7] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-08  2:41     ` [PATCH v3 6/7] cpufreq: sched: Re-introduce cpufreq_update_util() Rafael J. Wysocki
2016-03-08  2:50     ` [PATCH v3 7/7] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-16 14:41     ` [PATCH v4 0/7] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-16 14:43       ` [PATCH v4 1/7] cpufreq: sched: Helpers to add and remove update_util hooks Rafael J. Wysocki
2016-03-16 14:44       ` [PATCH v4 2/7] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-16 14:45       ` [PATCH v4 3/7] cpufreq: governor: Move abstract gov_attr_set code to seperate file Rafael J. Wysocki
2016-03-16 14:46       ` [PATCH v4 4/7] cpufreq: Move governor attribute set headers to cpufreq.h Rafael J. Wysocki
2016-03-16 14:47       ` [PATCH v4 5/7] cpufreq: Move governor symbols " Rafael J. Wysocki
2016-03-16 14:52       ` [PATCH v4 6/7] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-16 15:35         ` Peter Zijlstra
2016-03-16 16:58           ` Rafael J. Wysocki
2016-03-16 15:43         ` Peter Zijlstra
2016-03-16 16:58           ` Rafael J. Wysocki
2016-03-16 14:59       ` [PATCH v4 7/7] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-16 17:35         ` Peter Zijlstra
2016-03-16 21:42           ` Rafael J. Wysocki
2016-03-16 17:36         ` Peter Zijlstra
2016-03-16 21:34           ` Rafael J. Wysocki
2016-03-16 17:52         ` Peter Zijlstra
2016-03-16 21:38           ` Rafael J. Wysocki
2016-03-16 22:39             ` Peter Zijlstra
2016-03-16 17:53         ` Peter Zijlstra
2016-03-16 21:48           ` Rafael J. Wysocki
2016-03-16 18:14         ` Peter Zijlstra
2016-03-16 21:38           ` Rafael J. Wysocki
2016-03-16 22:40             ` Peter Zijlstra
2016-03-16 22:53               ` Rafael J. Wysocki
2016-03-16 15:27       ` [PATCH v4 0/7] cpufreq: schedutil governor Peter Zijlstra
2016-03-16 16:20         ` Rafael J. Wysocki
2016-03-16 23:51       ` [PATCH v5 6/7][Update] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-17 11:35         ` Juri Lelli
2016-03-17 11:40           ` Peter Zijlstra
2016-03-17 11:48             ` Juri Lelli
2016-03-17 12:53               ` Rafael J. Wysocki
2016-03-17  0:01       ` [PATCH v5 7/7][Update] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-17 11:30         ` Juri Lelli
2016-03-17 12:54           ` Rafael J. Wysocki
2016-03-17 11:36         ` Peter Zijlstra
2016-03-17 12:54           ` Rafael J. Wysocki
2016-03-17 15:54       ` [PATCH v6 6/7][Update] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-17 16:01       ` [PATCH v6 7/7][Update] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-18 12:34         ` Patrick Bellasi

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=56D89952.1010606@linaro.org \
    --to=steve.muckle@linaro.org \
    --cc=juri.lelli@arm.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mturquette@baylibre.com \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=vincent.guittot@linaro.org \
    --cc=viresh.kumar@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.