mbox series

[v2,0/2] Correct the processing for base_frequency

Message ID 20190325160440.7575-1-srinivas.pandruvada@linux.intel.com (mailing list archive)
Headers show
Series Correct the processing for base_frequency | expand

Message

srinivas pandruvada March 25, 2019, 4:04 p.m. UTC
The base_frequency display in cpufreq sysfs for intel_pstate gets the
guaranteed ratio by reading CPPC guaranteed performance register as a
first preference before falling back to x86 MSR for Hardware P-state
Capabilities. The current code in cppc_acpi.c assumed that "guaranteed
performance register" can be an integer field, which is invalid as per
ACPI spec. So this change explicitly check for INTEGER values for
invalid BIOS/firmware and ignore. 
Also guaranteed performance register field is optional and when not
present, nominal performance can be used as the guaranteed performance.
But spec calls that this is true only in non-autonomous mode. So
no change is made in cppc_acpi.c to make nominal as guaranteed in this
case to avoid dependency on autonomous and non-autonomous mode. Instead
a change is added to intel_pstate driver, which is specific to x86 to
make nominal as guaranteed when guaranteed performance field is absent
or has invalid value.
Also we are working to clarify this non-autonomous mode requirement
through ACPI standard body.

v2:
Changes done as suggested by Rafael.


Srinivas Pandruvada (2):
  ACPI / CPPC: Fix processing for guaranteed performance
  cpufreq: intel_pstate: Also use cppc nominal_perf for base_frequency

 drivers/acpi/cppc_acpi.c       | 9 +++++++--
 drivers/cpufreq/intel_pstate.c | 5 ++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

Comments

Rafael J. Wysocki March 26, 2019, 11:38 a.m. UTC | #1
On Monday, March 25, 2019 5:04:38 PM CET Srinivas Pandruvada wrote:
> The base_frequency display in cpufreq sysfs for intel_pstate gets the
> guaranteed ratio by reading CPPC guaranteed performance register as a
> first preference before falling back to x86 MSR for Hardware P-state
> Capabilities. The current code in cppc_acpi.c assumed that "guaranteed
> performance register" can be an integer field, which is invalid as per
> ACPI spec. So this change explicitly check for INTEGER values for
> invalid BIOS/firmware and ignore. 
> Also guaranteed performance register field is optional and when not
> present, nominal performance can be used as the guaranteed performance.
> But spec calls that this is true only in non-autonomous mode. So
> no change is made in cppc_acpi.c to make nominal as guaranteed in this
> case to avoid dependency on autonomous and non-autonomous mode. Instead
> a change is added to intel_pstate driver, which is specific to x86 to
> make nominal as guaranteed when guaranteed performance field is absent
> or has invalid value.
> Also we are working to clarify this non-autonomous mode requirement
> through ACPI standard body.
> 
> v2:
> Changes done as suggested by Rafael.
> 
> 
> Srinivas Pandruvada (2):
>   ACPI / CPPC: Fix processing for guaranteed performance
>   cpufreq: intel_pstate: Also use cppc nominal_perf for base_frequency
> 
>  drivers/acpi/cppc_acpi.c       | 9 +++++++--
>  drivers/cpufreq/intel_pstate.c | 5 ++++-
>  2 files changed, 11 insertions(+), 3 deletions(-)
> 
> 

Both applied, thanks!