Commit a5f5e12
perf/x86/intel: Don't clear perf metrics overflow bit unconditionally
The below code would always unconditionally clear other status bits like
perf metrics overflow bit once PEBS buffer overflows:
status &= intel_ctrl | GLOBAL_STATUS_TRACE_TOPAPMI;
This is incorrect. Perf metrics overflow bit should be cleared only when
fixed counter 3 in PEBS counter group. Otherwise perf metrics overflow
could be missed to handle.
Closes: https://lore.kernel.org/all/20250225110012.GK31462@noisy.programming.kicks-ass.net/
Fixes: 7b2c05a ("perf/x86/intel: Generic support for hardware TopDown metrics")
Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250415104135.318169-1-dapeng1.mi@linux.intel.com1 parent 506f981 commit a5f5e12
1 file changed
+11
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3049 | 3049 | | |
3050 | 3050 | | |
3051 | 3051 | | |
3052 | | - | |
3053 | 3052 | | |
3054 | 3053 | | |
3055 | 3054 | | |
| |||
3093 | 3092 | | |
3094 | 3093 | | |
3095 | 3094 | | |
3096 | | - | |
3097 | 3095 | | |
3098 | 3096 | | |
3099 | 3097 | | |
| |||
3104 | 3102 | | |
3105 | 3103 | | |
3106 | 3104 | | |
| 3105 | + | |
| 3106 | + | |
| 3107 | + | |
| 3108 | + | |
| 3109 | + | |
| 3110 | + | |
| 3111 | + | |
| 3112 | + | |
| 3113 | + | |
3107 | 3114 | | |
3108 | 3115 | | |
3109 | 3116 | | |
| |||
3123 | 3130 | | |
3124 | 3131 | | |
3125 | 3132 | | |
| 3133 | + | |
| 3134 | + | |
3126 | 3135 | | |
3127 | 3136 | | |
3128 | 3137 | | |
| |||
0 commit comments