tools/power/turbostat: Fix failure with new uncore sysfs

JIRA: https://issues.redhat.com/browse/RHEL-20029

commit 4d1827485acecac0016eaaec199e97697afdaa84
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Mon Jul 31 14:02:11 2023 +0800

    tools/power/turbostat: Fix failure with new uncore sysfs

    On some platforms, turbostat fails during launch time like below,

    turbostat version 2023.03.17 - Len Brown <lenb@kernel.org>
    ...
    cpu40: MSR_IA32_PACKAGE_THERM_STATUS: 0x884c0000 (24 C)
    cpu40: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x00000003 (100 C, 100 C)
    turbostat: snapshot_sysfs_counter(/sys/devices/system/cpu/intel_uncore_frequency/package_00_die_00/current_freq_khz): No data available

    This is because new uncore sysfs is used on these platforms as
    introduced by commit 9b8dea80e3cb ("platform/x86/intel-uncore-freq:
    Support for cluster level controls").

    With the new uncore sysfs interface,
    /sys/devices/system/cpu/intel_uncore_frequency/package_00_die_00/current_freq_khz
    is still available, but reading it fails.

    How to support the fabric cluster level uncore sysfs is not settled yet,
    as a short term fix, clear the BIC_UNCORE_MHZ bit when new sysfs I/F is
    detected.

    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Reviewed-by: Len Brown <len.brown@intel.com>

Signed-off-by: David Arcari <darcari@redhat.com>
This commit is contained in:
David Arcari 2024-01-04 07:29:36 -05:00
parent c485c091fd
commit ccdf18a706
1 changed files with 4 additions and 0 deletions

View File

@ -4163,6 +4163,10 @@ static void intel_uncore_frequency_probe(void)
if (access("/sys/devices/system/cpu/intel_uncore_frequency/package_00_die_00", R_OK))
return;
/* Cluster level sysfs not supported yet. */
if (!access("/sys/devices/system/cpu/intel_uncore_frequency/uncore00", R_OK))
return;
if (!access("/sys/devices/system/cpu/intel_uncore_frequency/package_00_die_00/current_freq_khz", R_OK))
BIC_PRESENT(BIC_UNCORE_MHZ);