• Cyrill Gorcunov's avatar
    perf, x86: P4 PMU - Fix unflagged overflows handling · 047a3772
    Cyrill Gorcunov authored
    Don found that P4 PMU reads CCCR register instead of counter
    itself (in attempt to catch unflagged event) this makes P4
    NMI handler to consume all NMIs it observes. So the other
    NMI users such as kgdb simply have no chance to get NMI
    on their hands.
    
    Side note: at moment there is no way to run nmi-watchdog
    together with perf tool. This is because both 'perf top' and
    nmi-watchdog use same event. So while nmi-watchdog reserves
    one event/counter for own needs there is no room for perf tool
    left (there is a way to disable nmi-watchdog on boot of course).
    
    Ming has tested this patch with the following results
    
     | 1. watchdog disabled
     |
     | kgdb tests on boot OK
     | perf works OK
     |
     | 2. watchdog enabled, without patch perf-x86-p4-nmi-4
     |
     | kgdb tests on boot hang
     |
     | 3. watchdog enabled, without patch perf-x86-p4-nmi-4 and do not run kgdb
     | tests on boot
     |
     | "perf top" partialy works
     |   cpu-cycles            no
     |   instructions          yes
     |   cache-references      no
     |   cache-misses          no
     |   branch-instructions   no
     |   branch-misses         yes
     |   bus-cycles            no
     |
     | 4. watchdog enabled, with patch perf-x86-p4-nmi-4 applied
     |
     | kgdb tests on boot OK
     | perf does not work, NMI "Dazed and confused" messages show up
     |
    
    Which means we still have problems with p4 box due to 'unknown'
    nmi happens but at least it should fix kgdb test cases.
    Reported-by: default avatarJason Wessel <jason.wessel@windriver.com>
    Reported-by: default avatarDon Zickus <dzickus@redhat.com>
    Signed-off-by: default avatarCyrill Gorcunov <gorcunov@openvz.org>
    Acked-by: default avatarDon Zickus <dzickus@redhat.com>
    Acked-by: default avatarLin Ming <ming.m.lin@intel.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    LKML-Reference: <4D275E7E.3040903@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    047a3772
perf_event_p4.c 38.8 KB