linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Doug Smythies" <dsmythies@telus.net>
To: 'Yuyang Du' <yuyang.du@intel.com>, 'Johan Hovold' <jhovold@gmail.com>
Cc: 'Dirk Brandewie' <dirk.brandewie@gmail.com>,
	'Viresh Kumar' <viresh.kumar@linaro.org>,
	dirk.j.brandewie@intel.com,
	"'Rafael J. Wysocki'" <rafael.j.wysocki@intel.com>,
	cpufreq@vger.kernel.org, linux-pm@vger.kernel.org,
	'Linux Kernel Mailing List' <linux-kernel@vger.kernel.org>,
	'Greg Kroah-Hartman' <gregkh@linuxfoundation.org>,
	'Stratos Karafotis' <stratosk@semaphore.gr>,
	Doug Smythies <dsmythies@telus.net>
Subject: RE: Performance regression in v3.14
Date: Wed, 28 May 2014 09:00:43 -0700	[thread overview]
Message-ID: <002401cf7a8d$fc6d9090$f548b1b0$@net> (raw)
In-Reply-To: <20140528003540.GA2296@intel.com>


On 2014.05.27 01:40 Yuyang Du wrote:
>> On 2014.05.27 01:00, Johan Hovold wrote:
>> I tried applying your (rejected) patch "intel_pstate: Remove C0
>> tracking" posted here:
>> 
>> 	https://lkml.org/lkml/2014/5/8/574
>> 
>> to v3.14.4 and it fixes the problem as expected.
>> 
>> So we have a commit fcb6a15c2e7e ("intel_pstate: Take core C0 time into
>> account for core busy calculation") that went into v3.14-rc2 (and was
>> even marked for *stable*) that first broke Greg KH's system:
>> 
>> 	https://lkml.org/lkml/2014/2/19/626
>> 
>> That was apparently fixed by e66c17683746 ("intel_pstate: Change
>> busy calculation to use fixed point math."), but still left v3.14
>> basically unusable for lower-intensity workloads such as my
>> bash-completion example and other reported regressions:
>> 
>> 	https://bugzilla.kernel.org/show_bug.cgi?id=75121
>> 
>> Sure there may be issues with v3.13 not hitting the lowest frequencies
>> but at least the system was *usable*.
>> 
>> In my opinion there's really no other option than to restore the 3.13
>> behaviour by effectively reverting fcb6a15c2e7e ("intel_pstate: Take
>> core C0 time into account for core busy calculation") until you have
>> figured out a way to take C0 into account without breaking things too
>> badly.

> Hi all,

> My posts before and now are only relevant to why C0 tracking can't be
> removed. Maybe I need to elaborate on it a little bit more.

> In a nutshell, without C0 tracking, the intel_pstate is effectively
> performance governor in terms of frequency control.

That is not true. The CPU Frequency Verses Load response curve
is different and considerably more aggressive for performance mode
when compared to powersave mode with C0 tracking removed.

I'll add a relevant graph to the bugzilla report referenced above.
(but it will be a few hours before I do.)

> Why? Without C0 trakcing, the machinery of the freq control
> is as I formed:
> last_freq_average / last_requested_freq ==> setpoint
> which can be virtually formed into:
> last_freq_average / last_requested_freq * last_C0_pct ==>
> setpoint * last_C0_pct

> which said, the control machinery will increase the frequency
> at ANY frequency at ANY C0_pct (which is the CPU utilization),
> since setpoint is less then 100 percent.

That is not true. Yes, and due to the setpoint being less than
100, which is needed or the driver won't work at all, there is
a tendency to drive the target pstate upwards.
However that is tempered by both the PID proportional gain,
and ultimately integer math. More importantly, the CPU
itself tells the driver when it is operating below the target
pstate and driver responds.

Additionally, the tendency to drive up the target pstate
too much is exasperated by some extra rounding up at a
couple of spots. Dirk has a pending fix.

> And a few iterations
> later, we will reach max (possible) frequency,
> then we are effectively performance governor
> (highest frequency all the time).

Please do not confuse highest target pstate with
highest frequency. They are not the same. The processor
itself can back off.

... Doug

  reply	other threads:[~2014-05-28 16:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-06 16:35 Performance regression in v3.14 Johan Hovold
2014-05-07  5:40 ` Viresh Kumar
2014-05-07  7:35   ` Johan Hovold
2014-05-07  8:36     ` Romain Francoise
2014-05-07 14:10   ` Dirk Brandewie
2014-05-21  9:00     ` Johan Hovold
2014-05-28  7:59       ` Johan Hovold
2014-05-28  0:35         ` Yuyang Du
2014-05-28 16:00           ` Doug Smythies [this message]
2014-05-28 16:53             ` Yuyang Du
2014-05-30  2:27         ` Greg Kroah-Hartman
2014-05-30  8:49           ` Johan Hovold
2014-05-30 12:29           ` Rafael J. Wysocki

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='002401cf7a8d$fc6d9090$f548b1b0$@net' \
    --to=dsmythies@telus.net \
    --cc=cpufreq@vger.kernel.org \
    --cc=dirk.brandewie@gmail.com \
    --cc=dirk.j.brandewie@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jhovold@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stratosk@semaphore.gr \
    --cc=viresh.kumar@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).