Commit fc5fb2b5 authored by Robert Richter's avatar Robert Richter Committed by Ingo Molnar

perf/x86-ibs: Catch spurious interrupts after stopping IBS

After disabling IBS there could be still incomming NMIs with samples
that even have the valid bit cleared. Mark all this NMIs as handled to
avoid spurious interrupt messages.
Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1333390758-10893-12-git-send-email-robert.richter@amd.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent c9574fe0
...@@ -473,11 +473,13 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs) ...@@ -473,11 +473,13 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs)
u64 *buf, *config, period; u64 *buf, *config, period;
if (!test_bit(IBS_STARTED, pcpu->state)) { if (!test_bit(IBS_STARTED, pcpu->state)) {
/* Catch spurious interrupts after stopping IBS: */ /*
if (!test_and_clear_bit(IBS_STOPPING, pcpu->state)) * Catch spurious interrupts after stopping IBS: After
return 0; * disabling IBS there could be still incomming NMIs
rdmsrl(perf_ibs->msr, *ibs_data.regs); * with samples that even have the valid bit cleared.
return (*ibs_data.regs & perf_ibs->valid_mask) ? 1 : 0; * Mark all this NMIs as handled.
*/
return test_and_clear_bit(IBS_STOPPING, pcpu->state) ? 1 : 0;
} }
msr = hwc->config_base; msr = hwc->config_base;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment