Re: [PATCH] cpufreq: intel_pstate: Implement passive mode with HWP enabled

Rafael J. Wysocki
2020-07-16T14:33:50Z

On Thu, Jul 16, 2020 at 3:14 AM Srinivas Pandruvada
<srinivas.pandruvada@linux.intel.com> wrote:
>
> On Wed, 2020-07-15 at 14:35 -0700, Francisco Jerez wrote:
> > "Rafael J. Wysocki" <rafael@kernel.org> writes:
> >
> > > On Wed, Jul 15, 2020 at 2:09 AM Francisco Jerez <
> > > currojerez@riseup.net> wrote:
> > > > "Rafael J. Wysocki" <rjw@rjwysocki.net> writes:
> > > >
> > > > > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > > > >
>
> [...]
>
> > > > > I don't think that's accurate. I've looked at hundreds of
> > > > > traces
> > while
> > my series [1] was in control of HWP_REQ_MAX and I've never seen an
> > excursion above the maximum HWP_REQ_MAX control specified by it
> > within a
> > given P-state domain, even while that maximum specified was well into
> > the turbo range. So, yeah, I agree that HWP_REQ_MAX is nothing like
> > a
> > hard limit, particularly when multiple threads are running on the
> > same
> > clock domain, but the processor will still make its best effort to
> > limit
> > the clock frequency to the maximum of the requested maximums, even if
> > it
> > happens to be within the turbo range. That doesn't make it useless.
> > The exact same thing can be said about controlling HWP_REQ_MIN as
> > you're
> > doing now in this revision of your patch, BTW.
> >
> > If you don't believe me here is the turbostat sample with maximum
> > Bzy_MHz I get on the computer I'm sitting on right now while
> > compiling a
> > kernel on CPU0 if I set HWP_REQ_MAX to 0x1c (within the turbo range):
> >
> > > Core CPU Avg_MHz
> > > Busy% Bzy_MHz HWP_REQ PkgWatt CorWatt
> > > - - 757 27.03 2800 0x0000000000000000 7.1
> > > 3 4.90
> > > 0 0 2794 99.77 2800 0x0000000080001c04 7.1
> > > 3 4.90
> > > 0 2 83 2.98 2800 0x0000000080001c04
> > > 1 1 73 2.60 2800 0x0000000080001c04
> > > 1 3 78 2.79 2800 0x0000000080001c04
> >
> > With the default HWP_REQUEST:
> >
> > > Core CPU Avg_MHz
> > > Busy% Bzy_MHz HWP_REQ PkgWatt CorWatt
> > > - - 814 27.00 3015 0x0000000000000000 8.4
> > > 9 6.18
> > > 0 0 2968 98.24 3021 0x0000000080001f04 8.4
> > > 9 6.18
> > > 0 2 84 2.81 2982 0x0000000080001f04
> > > 1 1 99 3.34 2961 0x0000000080001f04
> > > 1 3 105 3.60 2921 0x0000000080001f04
>
> Correct. In HWP mode this is possible to lower limit in turbo region
> conditionally. In legacy mode you can't with turbo activation ratio.
>
> But what we don't want set max and min perf and use like desired to run
> at a P-state overriding HWP or limit the range where HWP can't do any
> meaningful selection.

That's a good point too IMO.