Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8179962b authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branches 'intel_pstate-fix' and 'cpufreq-x86-fix'

* intel_pstate-fix:
  cpufreq: intel_pstate: report correct CPU frequencies during trace

* cpufreq-x86-fix:
  cpufreq: x86: Disable interrupts during MSRs reading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -40,13 +40,16 @@ static void aperfmperf_snapshot_khz(void *dummy)
	struct aperfmperf_sample *s = this_cpu_ptr(&samples);
	ktime_t now = ktime_get();
	s64 time_delta = ktime_ms_delta(now, s->time);
	unsigned long flags;

	/* Don't bother re-computing within the cache threshold time. */
	if (time_delta < APERFMPERF_CACHE_THRESHOLD_MS)
		return;

	local_irq_save(flags);
	rdmsrl(MSR_IA32_APERF, aperf);
	rdmsrl(MSR_IA32_MPERF, mperf);
	local_irq_restore(flags);

	aperf_delta = aperf - s->aperf;
	mperf_delta = mperf - s->mperf;
+1 −2
Original line number Diff line number Diff line
@@ -1613,8 +1613,7 @@ static inline bool intel_pstate_sample(struct cpudata *cpu, u64 time)

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);
	return mul_ext_fp(cpu->sample.core_avg_perf, cpu_khz);
}

static inline int32_t get_avg_pstate(struct cpudata *cpu)