Re: [RFT][PATCH 0/2] cpufreq: intel_pstate: Handle _PPC updates on global turbo disable/enable

From: Srinivas Pandruvada
Date: Sat Mar 02 2019 - 11:24:59 EST


On Sat, 2019-03-02 at 18:30 +0800, Yu Chen wrote:
> On Fri, Mar 01, 2019 at 09:39:27AM -0800, Srinivas Pandruvada wrote:
> > On Fri, 2019-03-01 at 13:43 +0100, Rafael J. Wysocki wrote:
> > > Hi All,
> > >
> > > This is how I would fix the issue reported in BZ 200759 (see this
> > > patch series
> > > from Yu too: https://marc.info/?l=linux-pm&m=155137672924029&w=2)
> > > .
> > >
> > > Patch [1/2] causes intel_pstate to update all policies if it gets
> > > a
> > > _PPC change
> > > notification and sees a global turbo disable/enable change.
> > >
> > > Patch [2/2] makes it update cpuinfo.max_freq for all policies in
> > > those cases.
> > >
> > > The patches here have not been tested yet, so testing would be
> > > much
> > > appreciated.
> > >
> > > Of course, comments are welcome too!
> >
> > This is the only platform, someone reported such issue.
> > Can we solve this by some udev rules and offline/online cpu 1-3 on
> > power source change?
> >
>
> Sound reasonable, we can deal with this BIOS problem in user space
> too. But if cpu0 could not be offline, how could cpu0's policy
> be updated?
I thought CPU0 is not a problem as the _PPC is sent on this and
policies gets updated from the following log.

# Unplug

[ 25.775643] CPU 0: _PPC is 6 - frequency limited
[ 25.775660] intel_pstate: set_policy cpuinfo.max 3000000 policy->max
1700000
[ 25.775666] intel_pstate: cpu:0 max_state 17 min_policy_perf:8
max_policy_perf:17
[ 25.775670] intel_pstate: cpu:0 global_min:8 global_max:30
[ 25.775674] intel_pstate: cpu:0 max_perf_ratio:17 min_perf_ratio:8

"REDUCED FREQUENCY ABOVE AFTER UNPLUG"


# Re-plug

[ 36.979264] CPU 0: _PPC is 6 - frequency limited
[ 36.979276] intel_pstate: policy->max > max non turbo frequency
[ 36.979280] intel_pstate: set_policy cpuinfo.max 3000000 policy->max
3000000
[ 36.979283] intel_pstate: cpu:0 max_state 30 min_policy_perf:8
max_policy_perf:30
[ 36.979286] intel_pstate: cpu:0 global_min:8 global_max:30
[ 36.979289] intel_pstate: cpu:0 max_perf_ratio:30 min_perf_ratio:8

Thanks,
Srinivas

>
> Thanks,
> Yu
>
> > There are examples of changing governors on power source change.
> > https://bbs.archlinux.org/viewtopic.php?id=207186
> >
> > Here instead of changing governor just
> > echo 0 > /sys/devices/system/cpu/cpu1/online
> > echo 1 > /sys/devices/system/cpu/cpu1/online
> > echo 0 >
> > /sys/devices/system/cpu/cpu2/online
> > echo 1 >
> > /sys/devices/system/cpu/cpu2/online
> > echo 0 >
> > /sys/devices/system/cpu/cpu3/online
> > echo 1 >
> > /sys/devices/system/cpu/cpu3/online
> >
> > Thanks,
> > Srinivas
> >
> > >
> > > Thanks,
> > > Rafael
> > >