Commit 03e22198d2379ffa746c9ea332fbb1f094f9423b
Committed by
Ingo Molnar
1 parent
98d943b02f
perf, x86: Handle in flight NMIs on P4 platform
Stephane reported we've forgot to guard the P4 platform against spurious in-flight performance IRQs. Fix it. This fixes potential spurious 'dazed and confused' NMI messages. Reported-by: Stephane Eranian <eranian@google.com> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Don Zickus <dzickus@redhat.com> Cc: fweisbec@gmail.com Cc: peterz@infradead.org Cc: Robert Richter <robert.richter@amd.com> Cc: Lin Ming <ming.m.lin@intel.com> LKML-Reference: <1285815698-4298-1-git-send-email-dzickus@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Showing 1 changed file with 5 additions and 1 deletions Side-by-side Diff
arch/x86/kernel/cpu/perf_event_p4.c
... | ... | @@ -660,8 +660,12 @@ |
660 | 660 | for (idx = 0; idx < x86_pmu.num_counters; idx++) { |
661 | 661 | int overflow; |
662 | 662 | |
663 | - if (!test_bit(idx, cpuc->active_mask)) | |
663 | + if (!test_bit(idx, cpuc->active_mask)) { | |
664 | + /* catch in-flight IRQs */ | |
665 | + if (__test_and_clear_bit(idx, cpuc->running)) | |
666 | + handled++; | |
664 | 667 | continue; |
668 | + } | |
665 | 669 | |
666 | 670 | event = cpuc->events[idx]; |
667 | 671 | hwc = &event->hw; |