archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <>
To: Viresh Kumar <>
Cc: Rafael Wysocki <>,
	Srinivas Pandruvada <>,
	Len Brown <>, Linux PM <>,
	Vincent Guittot <>,
	"v4 . 18+" <>,
	Doug Smythies <>,
	Linux Kernel Mailing List <>
Subject: Re: [PATCH V3 2/2] cpufreq: intel_pstate: Implement ->resolve_freq()
Date: Fri, 2 Aug 2019 11:17:55 +0200	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

On Fri, Aug 2, 2019 at 7:44 AM Viresh Kumar <> wrote:
> Intel pstate driver exposes min_perf_pct and max_perf_pct sysfs files,
> which can be used to force a limit on the min/max P state of the driver.
> Though these files eventually control the min/max frequencies that the
> CPUs will run at, they don't make a change to policy->min/max values.

That's correct.

> When the values of these files are changed (in passive mode of the
> driver), it leads to calling ->limits() callback of the cpufreq
> governors, like schedutil. On a call to it the governors shall
> forcefully update the frequency to come within the limits.

OK, so the problem is that it is a bug to invoke the governor's ->limits()
callback without updating policy->min/max, because that's what
"limits" mean to the governors.

Fair enough.

> For getting the value within limits, the schedutil governor calls
> cpufreq_driver_resolve_freq(), which eventually tries to call
> ->resolve_freq() callback for this driver. Since the callback isn't
> present, the schedutil governor fails to get the target freq within
> limit and sometimes aborts the update believing that the frequency is
> already set to the target value.
> This patch implements the resolve_freq() callback, so the correct target
> frequency can be returned by the driver and the schedutil governor gets
> the frequency within limits immediately.

So the problem is that ->resolve_freq() adds overhead and it adds that
overhead even if the limits don't change.  It just sits there and computes
things every time even if that is completely redundant.

So no, this is not the right way to fix it IMO.

  reply	other threads:[~2019-08-02  9:18 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-02  5:44 [PATCH V3 1/2] cpufreq: schedutil: Don't skip freq update when limits change Viresh Kumar
2019-08-02  5:44 ` [PATCH V3 2/2] cpufreq: intel_pstate: Implement ->resolve_freq() Viresh Kumar
2019-08-02  9:17   ` Rafael J. Wysocki [this message]
2019-08-02  9:28     ` Rafael J. Wysocki
2019-08-03 15:00       ` Doug Smythies
2019-08-05  8:35         ` Rafael J. Wysocki
2019-08-06  4:10       ` Viresh Kumar
2019-08-06  8:05         ` Rafael J. Wysocki
2019-08-02  9:11 ` [PATCH V3 1/2] cpufreq: schedutil: Don't skip freq update when limits change Rafael J. Wysocki
2019-08-03  0:00   ` Doug Smythies

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \ \ \
    --subject='Re: [PATCH V3 2/2] cpufreq: intel_pstate: Implement ->resolve_freq()' \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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).