mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-04 04:04:19 +00:00
tools/power/turbostat: Fallback to an MSR read for EPB
Commit6d6501d912
("tools/power/turbostat: Read energy_perf_bias from sysfs") converted turbostat to read the energy_perf_bias value from sysfs. However, older kernels which do not have that file yet, would fail. For those, fall back to the MSR reading. Fixes:6d6501d912
("tools/power/turbostat: Read energy_perf_bias from sysfs") Reported-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> Tested-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Link: https://lkml.kernel.org/r/20210127132444.981120-1-dedekind1@gmail.com
This commit is contained in:
parent
8acf417805
commit
7f1b11ba35
@ -1834,12 +1834,15 @@ int get_mp(int cpu, struct msr_counter *mp, unsigned long long *counterp)
|
||||
int get_epb(int cpu)
|
||||
{
|
||||
char path[128 + PATH_BYTES];
|
||||
unsigned long long msr;
|
||||
int ret, epb = -1;
|
||||
FILE *fp;
|
||||
|
||||
sprintf(path, "/sys/devices/system/cpu/cpu%d/power/energy_perf_bias", cpu);
|
||||
|
||||
fp = fopen_or_die(path, "r");
|
||||
fp = fopen(path, "r");
|
||||
if (!fp)
|
||||
goto msr_fallback;
|
||||
|
||||
ret = fscanf(fp, "%d", &epb);
|
||||
if (ret != 1)
|
||||
@ -1848,6 +1851,11 @@ int get_epb(int cpu)
|
||||
fclose(fp);
|
||||
|
||||
return epb;
|
||||
|
||||
msr_fallback:
|
||||
get_msr(cpu, MSR_IA32_ENERGY_PERF_BIAS, &msr);
|
||||
|
||||
return msr & 0xf;
|
||||
}
|
||||
|
||||
void get_apic_id(struct thread_data *t)
|
||||
|
Loading…
Reference in New Issue
Block a user