lkml.org 
[lkml]   [2017]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH 3/5] intel_pstate: remove intel_pstate.get()
Date
On Wednesday, June 07, 2017 07:39:14 PM Len Brown wrote:
> From: Len Brown <len.brown@intel.com>
>
> The x86 cpufreq core now uses aperfmperf_khz_on_cpu()
> to supply /sys/.../cpufreq/scaling_cur_freq
> on all x86 systems supporting APERF/MPERF.
>
> That includes 100% of systems supported by intel_pstate,
> and so intel_pstate.get() is now a NOP -- remove it.
>
> Invoke aperfmperf_khz_on_cpu() directly,
> if legacy-mode p-state tracing is enabled.
>
> Signed-off-by: Len Brown <len.brown@intel.com>
> ---
> drivers/cpufreq/intel_pstate.c | 16 +---------------
> 1 file changed, 1 insertion(+), 15 deletions(-)
>
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index b7de5bd..5d67780 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -1597,12 +1597,6 @@ static inline bool intel_pstate_sample(struct cpudata *cpu, u64 time)
> return false;
> }
>
> -static inline int32_t get_avg_frequency(struct cpudata *cpu)
> -{
> - return mul_ext_fp(cpu->sample.core_avg_perf,
> - cpu->pstate.max_pstate_physical * cpu->pstate.scaling);
> -}
> -
> static inline int32_t get_avg_pstate(struct cpudata *cpu)
> {
> return mul_ext_fp(cpu->pstate.max_pstate_physical,
> @@ -1728,7 +1722,7 @@ static void intel_pstate_adjust_pstate(struct cpudata *cpu, int target_pstate)
> sample->mperf,
> sample->aperf,
> sample->tsc,
> - get_avg_frequency(cpu),
> + aperfmperf_khz_on_cpu(cpu->cpu),

I don't think this change is an improvement.

We compute cpu->sample.core_avg_perf anyway and calling aperfmperf_khz_on_cpu()
here means quite a bit of additional overhead.

Besides, the sample->mperf and sample->aperf values here are expected to be
the ones used for computing the frequency.

> fp_toint(cpu->iowait_boost * 100));
> }
>
> @@ -1922,13 +1916,6 @@ static int intel_pstate_init_cpu(unsigned int cpunum)
> return 0;
> }
>
> -static unsigned int intel_pstate_get(unsigned int cpu_num)
> -{
> - struct cpudata *cpu = all_cpu_data[cpu_num];
> -
> - return cpu ? get_avg_frequency(cpu) : 0;
> -}
> -
> static void intel_pstate_set_update_util_hook(unsigned int cpu_num)
> {
> struct cpudata *cpu = all_cpu_data[cpu_num];
> @@ -2157,7 +2144,6 @@ static struct cpufreq_driver intel_pstate = {
> .setpolicy = intel_pstate_set_policy,
> .suspend = intel_pstate_hwp_save_state,
> .resume = intel_pstate_resume,
> - .get = intel_pstate_get,
> .init = intel_pstate_cpu_init,
> .exit = intel_pstate_cpu_exit,
> .stop_cpu = intel_pstate_stop_cpu,
>

Thanks,
Rafael

\
 
 \ /
  Last update: 2017-06-17 02:30    [W:0.081 / U:0.184 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site