diff options
author | Don Zickus <dzickus@redhat.com> | 2011-01-06 16:18:49 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-01-07 09:08:52 -0500 |
commit | 166d751479c6d4e5b17dfc1f204a9c4397c9b3f1 (patch) | |
tree | 44ddeb52d1a1f5b8c965fc7f24c4464b7e341818 /arch/x86/include/asm/nmi.h | |
parent | 673a6092ce5f5bec45619b7a7f89cfcf8bcf3c41 (diff) |
x86, NMI: Add priorities to handlers
In order to consolidate the NMI die_chain events, we need to setup the priorities
for the die notifiers.
I started by defining a bunch of common priorities that can be used by the
notifier blocks. Then I modified the notifier blocks to use the newly created
priorities.
Now that the priorities are straightened out, it should be easier to remove the
event DIE_NMI_IPI.
Signed-off-by: Don Zickus <dzickus@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1294348732-15030-4-git-send-email-dzickus@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include/asm/nmi.h')
-rw-r--r-- | arch/x86/include/asm/nmi.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h index c4021b953510..c76f5b92b840 100644 --- a/arch/x86/include/asm/nmi.h +++ b/arch/x86/include/asm/nmi.h | |||
@@ -23,6 +23,26 @@ void arch_trigger_all_cpu_backtrace(void); | |||
23 | #define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace | 23 | #define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace |
24 | #endif | 24 | #endif |
25 | 25 | ||
26 | /* | ||
27 | * Define some priorities for the nmi notifier call chain. | ||
28 | * | ||
29 | * Create a local nmi bit that has a higher priority than | ||
30 | * external nmis, because the local ones are more frequent. | ||
31 | * | ||
32 | * Also setup some default high/normal/low settings for | ||
33 | * subsystems to registers with. Using 4 bits to seperate | ||
34 | * the priorities. This can go alot higher if needed be. | ||
35 | */ | ||
36 | |||
37 | #define NMI_LOCAL_SHIFT 16 /* randomly picked */ | ||
38 | #define NMI_LOCAL_BIT (1ULL << NMI_LOCAL_SHIFT) | ||
39 | #define NMI_HIGH_PRIOR (1ULL << 8) | ||
40 | #define NMI_NORMAL_PRIOR (1ULL << 4) | ||
41 | #define NMI_LOW_PRIOR (1ULL << 0) | ||
42 | #define NMI_LOCAL_HIGH_PRIOR (NMI_LOCAL_BIT | NMI_HIGH_PRIOR) | ||
43 | #define NMI_LOCAL_NORMAL_PRIOR (NMI_LOCAL_BIT | NMI_NORMAL_PRIOR) | ||
44 | #define NMI_LOCAL_LOW_PRIOR (NMI_LOCAL_BIT | NMI_LOW_PRIOR) | ||
45 | |||
26 | void stop_nmi(void); | 46 | void stop_nmi(void); |
27 | void restart_nmi(void); | 47 | void restart_nmi(void); |
28 | 48 | ||