From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Len Brown <lenb@kernel.org>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
X86 ML <x86@kernel.org>, "H. Peter Anvin" <hpa@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Linux PM list <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Len Brown <len.brown@intel.com>
Subject: Re: [PATCH 4/5] intel_pstate: skip scheduler hook when in "performance" mode.
Date: Sat, 17 Jun 2017 03:06:29 +0200 [thread overview]
Message-ID: <4318906.Nci2R8jF0d@aspire.rjw.lan> (raw)
In-Reply-To: <CAJvTdKmoV4WbHOCy9WsspcLSNeCxO-egZP_j9XbbTTCTT7OeVA@mail.gmail.com>
On Friday, June 16, 2017 08:52:53 PM Len Brown wrote:
> On Fri, Jun 16, 2017 at 8:04 PM, Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
> > On Wednesday, June 07, 2017 07:39:15 PM Len Brown wrote:
> >> From: Len Brown <len.brown@intel.com>
> >>
> >> When the governor is set to "performance", intel_pstate does not
> >> need the scheduler hook for doing any calculations. Under these
> >> conditions, its only purpose is to continue to maintain
> >> cpufreq/scaling_cur_freq.
> >>
> >> But the cpufreq/scaling_cur_freq sysfs attribute is now provided by
> >> the x86 cpufreq core on all modern x86 systems, including
> >> all systems supported by the intel_pstate driver.
> >>
> >> So in "performance" governor mode, the scheduler hook can be skipped.
> >> This applies to both in Software and Hardware P-state control modes.
> >>
> >> Suggested-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> >> Signed-off-by: Len Brown <len.brown@intel.com>
> >> ---
> >> drivers/cpufreq/intel_pstate.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> >> index 5d67780..0ff3a4b 100644
> >> --- a/drivers/cpufreq/intel_pstate.c
> >> +++ b/drivers/cpufreq/intel_pstate.c
> >> @@ -2025,10 +2025,10 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
> >> */
> >> intel_pstate_clear_update_util_hook(policy->cpu);
> >
> > The statement above shouldn't be necessary any more after the change below.
>
> The policy can change at run time form something other than performance
> to performance, so we want to clear the hook in that case, no?
Yes.
> >> intel_pstate_max_within_limits(cpu);
> >> + } else {
> >> + intel_pstate_set_update_util_hook(policy->cpu);
> >> }
> >>
> >> - intel_pstate_set_update_util_hook(policy->cpu);
> >> -
> >> if (hwp_active)
> >> intel_pstate_hwp_set(policy->cpu);
> >>
> >
> > What about update_turbo_pstate()?
> >
> > In theory MSR_IA32_MISC_ENABLE_TURBO_DISABLE can be set at any time, so
> > wouldn't that become problematic after this change?
>
> yes, the sysfs "no_turbo" attribute can be modified at any time, invoking
> update_turbo_state(), which will update MSR_IA32_MISC_ENABLE_TURBO_DISABLE
If that was the only way it could change, I wouldn't worry about it, but what
about changes by BMCs and similar? Are they not a concern?
> But how is the presence or change in turbo related to the lack of a
> need to hook the scheduler callback in "performance" mode? The hook
> literally does nothing in this case, except consume cycles, no?
No.
It actually sets the P-state to the current maximum (which admittedly is
excessive) exactly because the maximum may change on the fly in theory.
If it can't change on the fly (or we don't care), we can do some more
simplifications there. :-)
Thanks,
Rafael
next prev parent reply other threads:[~2017-06-17 1:13 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-08 2:39 [PATCH 0/5] x86, cpufreq: consolidate APERF/MPERF calculation Len Brown
2017-06-08 2:39 ` [PATCH 1/5] x86: do not use cpufreq_quick_get() for /proc/cpuinfo "cpu MHz" Len Brown
2017-06-08 2:39 ` [PATCH 2/5] x86: use common aperfmperf_khz_on_cpu() to calculate KHz using APERF/MPERF Len Brown
2017-06-17 0:30 ` Rafael J. Wysocki
2017-06-17 1:49 ` Len Brown
2017-06-19 12:28 ` Rafael J. Wysocki
2017-06-19 14:18 ` Rafael J. Wysocki
2017-06-08 2:39 ` [PATCH 3/5] intel_pstate: remove intel_pstate.get() Len Brown
2017-06-16 23:53 ` Rafael J. Wysocki
2017-06-17 0:35 ` Len Brown
2017-06-17 0:37 ` Rafael J. Wysocki
2017-06-17 1:10 ` Len Brown
2017-06-17 1:21 ` Rafael J. Wysocki
2017-06-17 1:40 ` Rafael J. Wysocki
2017-06-17 2:06 ` Len Brown
2017-06-17 0:22 ` Rafael J. Wysocki
2017-06-08 2:39 ` [PATCH 4/5] intel_pstate: skip scheduler hook when in "performance" mode Len Brown
2017-06-17 0:04 ` Rafael J. Wysocki
2017-06-17 0:52 ` Len Brown
2017-06-17 1:06 ` Rafael J. Wysocki [this message]
2017-06-17 1:31 ` Len Brown
2017-06-17 1:35 ` Len Brown
2017-06-08 2:39 ` [PATCH 5/5] intel_pstate: delete scheduler hook in HWP mode Len Brown
2017-06-17 0:09 ` Rafael J. Wysocki
2017-06-17 1:27 ` Len Brown
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=4318906.Nci2R8jF0d@aspire.rjw.lan \
--to=rjw@rjwysocki.net \
--cc=hpa@linux.intel.com \
--cc=len.brown@intel.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®