summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorDon Zickus <dzickus@redhat.com>2011-04-27 06:32:33 -0400
committerIngo Molnar <mingo@elte.hu>2011-04-27 17:59:11 +0200
commit2bce5daca28346f19c190dbdb5542c9fe3e8c6e6 (patch)
tree01543a887959d5e5d821c3ce77c171d96eac78fe /kernel
parent6c8a7213278324f381cbcbf51510711ed745d8e6 (diff)
downloadop-kernel-dev-2bce5daca28346f19c190dbdb5542c9fe3e8c6e6.zip
op-kernel-dev-2bce5daca28346f19c190dbdb5542c9fe3e8c6e6.tar.gz
perf, x86, nmi: Move LVT un-masking into irq handlers
It was noticed that P4 machines were generating double NMIs for each perf event. These extra NMIs lead to 'Dazed and confused' messages on the screen. I tracked this down to a P4 quirk that said the overflow bit had to be cleared before re-enabling the apic LVT mask. My first attempt was to move the un-masking inside the perf nmi handler from before the chipset NMI handler to after. This broke Nehalem boxes that seem to like the unmasking before the counters themselves are re-enabled. In order to keep this change simple for 2.6.39, I decided to just simply move the apic LVT un-masking to the beginning of all the chipset NMI handlers, with the exception of Pentium4's to fix the double NMI issue. Later on we can move the un-masking to later in the handlers to save a number of 'extra' NMIs on those particular chipsets. I tested this change on a P4 machine, an AMD machine, a Nehalem box, and a core2quad box. 'perf top' worked correctly along with various other small 'perf record' runs. Anything high stress breaks all the machines but that is a different problem. Thanks to various people for testing different versions of this patch. Reported-and-tested-by: Shaun Ruffell <sruffell@digium.com> Signed-off-by: Don Zickus <dzickus@redhat.com> Cc: Cyrill Gorcunov <gorcunov@gmail.com> Link: http://lkml.kernel.org/r/1303900353-10242-1-git-send-email-dzickus@redhat.com Signed-off-by: Ingo Molnar <mingo@elte.hu> CC: Cyrill Gorcunov <gorcunov@gmail.com>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud