|
@@ -3324,13 +3324,13 @@ __init int intel_pmu_init(void)
|
|
|
* counter, so do not extend mask to generic counters
|
|
|
*/
|
|
|
for_each_event_constraint(c, x86_pmu.event_constraints) {
|
|
|
- if (c->cmask != FIXED_EVENT_FLAGS
|
|
|
- || c->idxmsk64 == INTEL_PMC_MSK_FIXED_REF_CYCLES) {
|
|
|
- continue;
|
|
|
+ if (c->cmask == FIXED_EVENT_FLAGS
|
|
|
+ && c->idxmsk64 != INTEL_PMC_MSK_FIXED_REF_CYCLES) {
|
|
|
+ c->idxmsk64 |= (1ULL << x86_pmu.num_counters) - 1;
|
|
|
}
|
|
|
-
|
|
|
- c->idxmsk64 |= (1ULL << x86_pmu.num_counters) - 1;
|
|
|
- c->weight += x86_pmu.num_counters;
|
|
|
+ c->idxmsk64 &=
|
|
|
+ ~(~0UL << (INTEL_PMC_IDX_FIXED + x86_pmu.num_counters_fixed));
|
|
|
+ c->weight = hweight64(c->idxmsk64);
|
|
|
}
|
|
|
}
|
|
|
|