Re: [PATCH 6/6] cpufreq: schedutil: New governor based on scheduler utilization data
From: Peter Zijlstra <peterz@infradead.org>
Date: 2016-03-03 18:26:34
Also in:
linux-acpi, lkml
From: Peter Zijlstra <peterz@infradead.org>
Date: 2016-03-03 18:26:34
Also in:
linux-acpi, lkml
On Thu, Mar 03, 2016 at 05:28:55PM +0000, Dietmar Eggemann wrote:
quoted
+void arch_scale_freq_tick(void) +{ + u64 aperf, mperf; + u64 acnt, mcnt; + + if (!static_cpu_has(X86_FEATURE_APERFMPERF)) + return; + + aperf = rdmsrl(MSR_IA32_APERF); + mperf = rdmsrl(MSR_IA32_APERF); + + acnt = aperf - this_cpu_read(arch_prev_aperf); + mcnt = mperf - this_cpu_read(arch_prev_mperf); + + this_cpu_write(arch_prev_aperf, aperf); + this_cpu_write(arch_prev_mperf, mperf); + + this_cpu_write(arch_cpu_freq, div64_u64(acnt * SCHED_CAPACITY_SCALE, mcnt));Wasn't there the problem that this ratio goes to zero if the cpu is idle in the old power estimation approach on x86?
Yeah, there was something funky. SDM says they only count in C0 (ie. !idle), so it _should_ work.