mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-28 00:19:36 +00:00
tools/power turbostat: Check for non-zero value when MSR probing
For some MSRs, for example, the Platform Energy Counter (RAPL PSYS), it is required to additionally check for a non-zero value to confirm that it is present. From Intel SDM vol. 4: Platform Energy Counter (R/O) This MSR is valid only if both platform vendor hardware implementation and BIOS enablement support it. This MSR will read 0 if not valid. Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
1af5baeda5
commit
7c6fee25bd
@ -2113,13 +2113,17 @@ int get_msr(int cpu, off_t offset, unsigned long long *msr)
|
||||
int probe_msr(int cpu, off_t offset)
|
||||
{
|
||||
ssize_t retval;
|
||||
unsigned long long dummy;
|
||||
unsigned long long value;
|
||||
|
||||
assert(!no_msr);
|
||||
|
||||
retval = pread(get_msr_fd(cpu), &dummy, sizeof(dummy), offset);
|
||||
retval = pread(get_msr_fd(cpu), &value, sizeof(value), offset);
|
||||
|
||||
if (retval != sizeof(dummy))
|
||||
/*
|
||||
* Expect MSRs to accumulate some non-zero value since the system was powered on.
|
||||
* Treat zero as a read failure.
|
||||
*/
|
||||
if (retval != sizeof(value) || value == 0)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user