Messages in this thread | | | Date | Thu, 26 Nov 2020 13:13:29 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH 1/2] perf/x86/intel: Fix a warning on x86_pmu_stop() with large PEBS |
| |
On Thu, Nov 26, 2020 at 08:09:21PM +0900, Namhyung Kim wrote: > The commit 3966c3feca3f ("x86/perf/amd: Remove need to check "running" > bit in NMI handler") introduced this. It seems x86_pmu_stop can be > called recursively (like when it losts some samples) like below: > > x86_pmu_stop > intel_pmu_disable_event (x86_pmu_disable) > intel_pmu_pebs_disable > intel_pmu_drain_pebs_nhm (x86_pmu_drain_pebs_buffer) > x86_pmu_stop > > While commit 35d1ce6bec13 ("perf/x86/intel/ds: Fix x86_pmu_stop > warning for large PEBS") fixed it for the normal cases, there's > another path to call x86_pmu_stop() recursively when a PEBS error was > detected (like two or more counters overflowed at the same time). > > Like in the Kan's previous fix, we can skip the interrupt accounting > for large PEBS, so check the iregs which is set for PMI only. > > Fixes: 3966c3feca3f ("x86/perf/amd: Remove need to check "running" bit in NMI handler") > Reported-by: John Sperbeck <jsperbeck@google.com> > Suggested-by: Peter Zijlstra <peterz@infradead.org> > Cc: "Lendacky, Thomas" <Thomas.Lendacky@amd.com> > Cc: Kan Liang <kan.liang@linux.intel.com> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Thanks for both!
| |