| /kernel/linux/linux-5.10/arch/x86/kernel/ |
| D | nmi.c | 18 #include <linux/nmi.h> 31 #include <asm/nmi.h> 39 #include <trace/events/nmi.h> 80 * Prevent NMI reason port (0x61) being accessed simultaneously, can 81 * only be used in NMI handler. 117 "INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n", in nmi_check_duration() 150 /* return total number of NMI events handled */ in nmi_handle() 167 * internal NMI handler call chains (SERR and IO_CHECK). in __register_nmi_handler() 196 * the name passed in to describe the nmi handler in unregister_nmi_handler() 201 "Trying to free NMI (%s) from NMI context!\n", n->name); in unregister_nmi_handler() [all …]
|
| /kernel/linux/linux-6.6/arch/x86/kernel/ |
| D | nmi.c | 18 #include <linux/nmi.h> 31 #include <asm/nmi.h> 40 #include <trace/events/nmi.h> 43 * An emergency handler can be set in any context including NMI 94 * Prevent NMI reason port (0x61) being accessed simultaneously, can 95 * only be used in NMI handler. 131 "INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n", in nmi_check_duration() 177 /* return total number of NMI events handled */ in nmi_handle() 194 * internal NMI handler call chains (SERR and IO_CHECK). in __register_nmi_handler() 223 * the name passed in to describe the nmi handler in unregister_nmi_handler() [all …]
|
| /kernel/linux/linux-6.6/arch/x86/platform/uv/ |
| D | uv_nmi.c | 3 * SGI NMI support routines 16 #include <linux/nmi.h> 26 #include <asm/nmi.h> 34 * UV handler for NMI 36 * Handle system-wide NMI events generated by the global 'power nmi' command. 38 * Basic operation is to field the NMI interrupt on each CPU and wait 39 * until all CPU's have arrived into the nmi handler. If some CPU's do not 40 * make it into the handler, try and force them in with the IPI(NMI) signal. 46 * To do this we register our primary NMI notifier on the NMI_UNKNOWN 47 * chain. This reduces the number of false NMI calls when the perf [all …]
|
| /kernel/linux/linux-5.10/Documentation/RCU/ |
| D | NMI-RCU.rst | 3 Using RCU to Protect Dynamic NMI Handlers 10 how to do this, drawing loosely from Zwane Mwaikambo's NMI-timer 22 The dummy_nmi_callback() function is a "dummy" NMI handler that does 24 the NMI handler to take the default machine-specific action:: 29 NMI handler:: 46 The do_nmi() function processes each NMI. It first disables preemption 48 count of NMIs. It then invokes the NMI handler stored in the nmi_callback 50 default_do_nmi() function to handle a machine-specific NMI. Finally, 64 Back to the discussion of NMI and RCU:: 71 The set_nmi_callback() function registers an NMI handler. Note that any [all …]
|
| /kernel/linux/linux-6.6/Documentation/RCU/ |
| D | NMI-RCU.rst | 3 Using RCU to Protect Dynamic NMI Handlers 10 how to do this, drawing loosely from Zwane Mwaikambo's NMI-timer 21 The dummy_nmi_callback() function is a "dummy" NMI handler that does 23 the NMI handler to take the default machine-specific action:: 28 NMI handler:: 45 The do_nmi() function processes each NMI. It first disables preemption 47 count of NMIs. It then invokes the NMI handler stored in the nmi_callback 49 default_do_nmi() function to handle a machine-specific NMI. Finally, 63 Back to the discussion of NMI and RCU:: 70 The set_nmi_callback() function registers an NMI handler. Note that any [all …]
|
| /kernel/linux/linux-5.10/arch/x86/platform/uv/ |
| D | uv_nmi.c | 3 * SGI NMI support routines 16 #include <linux/nmi.h> 26 #include <asm/nmi.h> 33 * UV handler for NMI 35 * Handle system-wide NMI events generated by the global 'power nmi' command. 37 * Basic operation is to field the NMI interrupt on each CPU and wait 38 * until all CPU's have arrived into the nmi handler. If some CPU's do not 39 * make it into the handler, try and force them in with the IPI(NMI) signal. 45 * To do this we register our primary NMI notifier on the NMI_UNKNOWN 46 * chain. This reduces the number of false NMI calls when the perf [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/interrupt-controller/ |
| D | allwinner,sun7i-a20-sc-nmi.yaml | 4 $id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml# 25 - const: allwinner,sun6i-a31-sc-nmi 27 - const: allwinner,sun7i-a20-sc-nmi 29 - const: allwinner,sun8i-v3s-nmi 30 - const: allwinner,sun9i-a80-nmi 31 - const: allwinner,sun9i-a80-nmi 33 - const: allwinner,sun50i-a100-nmi 34 - const: allwinner,sun9i-a80-nmi 56 compatible = "allwinner,sun7i-a20-sc-nmi";
|
| /kernel/linux/linux-6.6/arch/sparc/kernel/ |
| D | nmi.c | 2 /* Pseudo NMI support on sparc64 systems. 6 * The NMI watchdog support and infrastructure is based almost 7 * entirely upon the x86 NMI support code. 13 #include <linux/nmi.h> 29 /* We don't have a real NMI on sparc64, but we can fake one 40 * >0: the NMI watchdog is active, but can be disabled 41 * <0: the NMI watchdog has not been set up, and cannot be enabled 42 * 0: the NMI watchdog is disabled, but can be enabled 100 if (notify_die(DIE_NMI, "nmi", regs, 0, in perfctr_irq() 114 die_nmi("BUG: NMI Watchdog detected LOCKUP", in perfctr_irq() [all …]
|
| /kernel/linux/linux-5.10/arch/sparc/kernel/ |
| D | nmi.c | 2 /* Pseudo NMI support on sparc64 systems. 6 * The NMI watchdog support and infrastructure is based almost 7 * entirely upon the x86 NMI support code. 13 #include <linux/nmi.h> 29 /* We don't have a real NMI on sparc64, but we can fake one 40 * >0: the NMI watchdog is active, but can be disabled 41 * <0: the NMI watchdog has not been set up, and cannot be enabled 42 * 0: the NMI watchdog is disabled, but can be enabled 95 if (notify_die(DIE_NMI, "nmi", regs, 0, in perfctr_irq() 109 die_nmi("BUG: NMI Watchdog detected LOCKUP", in perfctr_irq() [all …]
|
| /kernel/linux/linux-6.6/arch/x86/lib/ |
| D | usercopy.c | 14 * copy_from_user_nmi - NMI safe copy from user 22 * from NMI context. Despite the name it is not restricted to be called 23 * from NMI context. It is safe to be called from any other context as 27 * For NMI context invocations this relies on the nested NMI work to allow 28 * atomic faults from the NMI path; the nested NMI paths are careful to 43 * Even though this function is typically called from NMI/IRQ context in copy_from_user_nmi()
|
| /kernel/linux/linux-6.6/lib/ |
| D | nmi_backtrace.c | 3 * NMI backtrace support 8 * HW NMI watchdog support 12 * Arch specific calls to support NMI watchdog 14 * Bits copied from original nmi.c file 19 #include <linux/nmi.h> 56 * Don't try to send an NMI to this cpu; it may work on some in nmi_trigger_cpumask_backtrace() 65 pr_info("Sending NMI from CPU %d to CPUs %*pbl:\n", in nmi_trigger_cpumask_backtrace() 101 * Allow nested NMI backtraces while serializing in nmi_cpu_backtrace() 106 pr_warn("NMI backtrace for cpu %d skipped: idling at %pS\n", in nmi_cpu_backtrace() 109 pr_warn("NMI backtrace for cpu %d\n", cpu); in nmi_cpu_backtrace()
|
| /kernel/linux/linux-6.6/arch/x86/entry/ |
| D | entry_64.S | 984 * only on return from non-NMI IST interrupts that came 1150 * the iretq it performs will take us out of NMI context. 1152 * NMI is using the top of the stack of the previous NMI. We 1153 * can't let it execute because the nested NMI will corrupt the 1154 * stack of the previous NMI. NMI handlers are not re-entrant 1161 * is an NMI stack. 1162 * If the variable is not set and the stack is not the NMI 1168 * o Continue processing the NMI 1169 * If the variable is set or the previous stack is the NMI stack: 1171 * o return back to the first NMI [all …]
|
| /kernel/linux/linux-5.10/arch/x86/entry/ |
| D | entry_64.S | 977 * only on return from non-NMI IST interrupts that came 1145 * the iretq it performs will take us out of NMI context. 1147 * NMI is using the top of the stack of the previous NMI. We 1148 * can't let it execute because the nested NMI will corrupt the 1149 * stack of the previous NMI. NMI handlers are not re-entrant 1156 * is an NMI stack. 1157 * If the variable is not set and the stack is not the NMI 1163 * o Continue processing the NMI 1164 * If the variable is set or the previous stack is the NMI stack: 1166 * o return back to the first NMI [all …]
|
| /kernel/linux/linux-6.6/Documentation/watchdog/ |
| D | hpwdt.rst | 2 HPE iLO NMI Watchdog Driver 11 The HPE iLO NMI Watchdog driver is a kernel module that provides basic 12 watchdog functionality and handler for the iLO "Generate NMI to System" 34 NMI is delivered to the system. Setting the value to 35 zero disables the pretimeout NMI. 42 kdumptimeout Minimum timeout in seconds to apply upon receipt of an NMI 53 Due to limitations in the iLO hardware, the NMI pretimeout if enabled, 58 Upon receipt of an NMI from the iLO, the hpwdt driver will initiate a 70 If the hpwdt does not receive the NMI associated with an expiring timer, 76 The HPE iLO NMI Watchdog Driver and documentation were originally developed
|
| /kernel/linux/linux-5.10/Documentation/watchdog/ |
| D | hpwdt.rst | 2 HPE iLO NMI Watchdog Driver 11 The HPE iLO NMI Watchdog driver is a kernel module that provides basic 12 watchdog functionality and handler for the iLO "Generate NMI to System" 34 NMI is delivered to the system. Setting the value to 35 zero disables the pretimeout NMI. 42 kdumptimeout Minimum timeout in seconds to apply upon receipt of an NMI 53 Due to limitations in the iLO hardware, the NMI pretimeout if enabled, 58 Upon receipt of an NMI from the iLO, the hpwdt driver will initiate a 70 If the hpwdt does not receive the NMI associated with an expiring timer, 76 The HPE iLO NMI Watchdog Driver and documentation were originally developed
|
| /kernel/linux/linux-5.10/lib/ |
| D | nmi_backtrace.c | 3 * NMI backtrace support 8 * HW NMI watchdog support 12 * Arch specific calls to support NMI watchdog 14 * Bits copied from original nmi.c file 19 #include <linux/nmi.h> 56 * Don't try to send an NMI to this cpu; it may work on some in nmi_trigger_cpumask_backtrace() 65 pr_info("Sending NMI from CPU %d to CPUs %*pbl:\n", in nmi_trigger_cpumask_backtrace() 98 pr_warn("NMI backtrace for cpu %d skipped: idling at %pS\n", in nmi_cpu_backtrace() 101 pr_warn("NMI backtrace for cpu %d\n", cpu); in nmi_cpu_backtrace()
|
| /kernel/linux/linux-6.6/kernel/ |
| D | watchdog_perf.c | 9 * Some chunks also taken from the old x86-specific nmi watchdog code, thanks 13 #define pr_fmt(fmt) "NMI watchdog: " fmt 15 #include <linux/nmi.h> 39 * So it runs effectively with 2.5 times the rate of the NMI in watchdog_update_hrtimer_threshold() 41 * the NMI watchdog expires. The NMI watchdog on x86 is based on in watchdog_update_hrtimer_threshold() 43 * might run way faster than expected and the NMI fires in a in watchdog_update_hrtimer_threshold() 46 * enough to get the NMI period smaller than the hrtimer watchdog in watchdog_update_hrtimer_threshold() 49 * The sample threshold is used to check in the NMI handler whether in watchdog_update_hrtimer_threshold() 50 * the minimum time between two NMI samples has elapsed. That in watchdog_update_hrtimer_threshold() 248 * watchdog_hardlockup_probe - Probe whether NMI event is available at all [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/interrupt-controller/ |
| D | allwinner,sun7i-a20-sc-nmi.yaml | 4 $id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml# 26 - const: allwinner,sun6i-a31-sc-nmi 28 - const: allwinner,sun7i-a20-sc-nmi 32 - const: allwinner,sun9i-a80-nmi 37 - const: allwinner,sun50i-a100-nmi 38 - const: allwinner,sun9i-a80-nmi 63 compatible = "allwinner,sun7i-a20-sc-nmi";
|
| /kernel/linux/linux-5.10/kernel/printk/ |
| D | printk_safe.c | 19 * printk() could not take logbuf_lock in NMI context. Instead, 62 * Add a message to per-CPU context-dependent buffer. NMI and printk-safe 64 * NMI-printk would have overwritten the NMI messages. 117 * in NMI or printk_safe context (when in panic). The messages in printk_safe_flush_line() 239 * printk_safe_flush - flush all per-cpu nmi buffers. 258 * printk_safe_flush_on_panic - flush all per-cpu nmi buffers when the system 261 * Similar to printk_safe_flush() but it can be called even in NMI context when 262 * the system goes down. It does the best effort to get NMI messages into 294 * Safe printk() for NMI context. It uses a per-CPU buffer to 317 * Marks a code that might produce many messages in NMI context [all …]
|
| /kernel/linux/linux-5.10/kernel/ |
| D | watchdog_hld.c | 9 * Some chunks also taken from the old x86-specific nmi watchdog code, thanks 13 #define pr_fmt(fmt) "NMI watchdog: " fmt 15 #include <linux/nmi.h> 55 * So it runs effectively with 2.5 times the rate of the NMI in watchdog_update_hrtimer_threshold() 57 * the NMI watchdog expires. The NMI watchdog on x86 is based on in watchdog_update_hrtimer_threshold() 59 * might run way faster than expected and the NMI fires in a in watchdog_update_hrtimer_threshold() 62 * enough to get the NMI period smaller than the hrtimer watchdog in watchdog_update_hrtimer_threshold() 65 * The sample threshold is used to check in the NMI handler whether in watchdog_update_hrtimer_threshold() 66 * the minimum time between two NMI samples has elapsed. That in watchdog_update_hrtimer_threshold() 283 * hardlockup_detector_perf_init - Probe whether NMI event is available at all [all …]
|
| /kernel/linux/linux-6.6/include/xen/interface/ |
| D | nmi.h | 3 * nmi.h 5 * NMI callback registration and reason codes. 16 * NMI reason codes: 25 /* Unknown hardware-generated NMI. */ 35 * Register NMI callback for this (calling) VCPU. Currently this only makes 47 * Deregister NMI callback for this (calling) VCPU.
|
| /kernel/linux/linux-5.10/include/xen/interface/ |
| D | nmi.h | 3 * nmi.h 5 * NMI callback registration and reason codes. 16 * NMI reason codes: 25 /* Unknown hardware-generated NMI. */ 35 * Register NMI callback for this (calling) VCPU. Currently this only makes 47 * Deregister NMI callback for this (calling) VCPU.
|
| /kernel/linux/linux-6.6/arch/powerpc/kernel/ |
| D | watchdog.c | 7 * This uses code from arch/sparc/kernel/nmi.c and kernel/watchdog.c 17 #include <linux/nmi.h> 32 #include <asm/nmi.h> 41 * The local soft-NMI, and the SMP checker. 43 * The soft-NMI checker can detect lockups on the local CPU. When interrupts 47 * watchdog's soft_nmi_interrupt(), which appears to Linux as an NMI 50 * The soft-NMI checker will compare the heartbeat timestamp for this CPU 54 * The limitation of the soft-NMI watchdog is that it does not work when 70 * Some platforms implement true NMI IPIs, which can be used by the SMP 72 * state with the NMI IPI, to get crash/debug data from it. This way the [all …]
|
| /kernel/linux/linux-5.10/arch/x86/kernel/apic/ |
| D | hw_nmi.c | 3 * HW NMI watchdog support 7 * Arch specific calls to support NMI watchdog 9 * Bits copied from original nmi.c file 14 #include <asm/nmi.h> 20 #include <linux/nmi.h>
|
| /kernel/linux/linux-6.6/arch/x86/kernel/apic/ |
| D | hw_nmi.c | 3 * HW NMI watchdog support 7 * Arch specific calls to support NMI watchdog 9 * Bits copied from original nmi.c file 14 #include <asm/nmi.h> 20 #include <linux/nmi.h>
|