Commit 03e22198d2379ffa746c9ea332fbb1f094f9423b

Authored by Cyrill Gorcunov
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;