tools/power turbostat: Ignore pkg_cstate_limit when it is not available
authorPatryk Wlazlyn <patryk.wlazlyn@linux.intel.com>
Thu, 9 May 2024 10:39:47 +0000 (12:39 +0200)
committerLen Brown <len.brown@intel.com>
Thu, 16 May 2024 01:50:16 +0000 (21:50 -0400)
When running in no-msr mode, the pkg_cstate_limit is not populated, thus
we use perf to determine if given pcstate counter is present on the
platform.

Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.c

index b45b2f494416cd281fc21056e6a28565da673dfd..8cb18d42c189c751e3f203295524e7d67848004e 100644 (file)
@@ -7121,9 +7121,7 @@ void cstate_perf_init_(bool soft_c1)
 
                        const bool counter_needed = BIC_IS_ENABLED(cai->bic) ||
                            (soft_c1 && (cai->flags & CSTATE_COUNTER_FLAG_SOFT_C1_DEPENDENCY));
-                       const bool counter_supported =
-                           (platform->supported_cstates & cai->feature_mask) &&
-                           (pkg_cstate_limit >= cai->pkg_cstate_limit);
+                       const bool counter_supported = (platform->supported_cstates & cai->feature_mask);
 
                        if (counter_needed && counter_supported) {
                                /* Use perf API for this counter */
@@ -7132,7 +7130,8 @@ void cstate_perf_init_(bool soft_c1)
                                        cci->source[cai->rci_index] = CSTATE_SOURCE_PERF;
 
                                        /* User MSR for this counter */
-                               } else if (!no_msr && cai->msr && probe_msr(cpu, cai->msr) == 0) {
+                               } else if (!no_msr && cai->msr && pkg_cstate_limit >= cai->pkg_cstate_limit
+                                          && probe_msr(cpu, cai->msr) == 0) {
                                        cci->source[cai->rci_index] = CSTATE_SOURCE_MSR;
                                        cci->msr[cai->rci_index] = cai->msr;
                                }