aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nmi.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 20:25:18 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 20:25:18 -0500
commita57cb1c1d7974c62a5c80f7869e35b492ace12cd (patch)
tree5a42ee9a668f171143464bc86013954c1bbe94ad /include/linux/nmi.h
parentcf1b3341afab9d3ad02a76b3a619ea027dcf4e28 (diff)
parente1e14ab8411df344a17687821f8f78f0a1e73cbb (diff)
Merge branch 'akpm' (patches from Andrew)
Merge more updates from Andrew Morton: - a few misc things - kexec updates - DMA-mapping updates to better support networking DMA operations - IPC updates - various MM changes to improve DAX fault handling - lots of radix-tree changes, mainly to the test suite. All leading up to reimplementing the IDA/IDR code to be a wrapper layer over the radix-tree. However the final trigger-pulling patch is held off for 4.11. * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (114 commits) radix tree test suite: delete unused rcupdate.c radix tree test suite: add new tag check radix-tree: ensure counts are initialised radix tree test suite: cache recently freed objects radix tree test suite: add some more functionality idr: reduce the number of bits per level from 8 to 6 rxrpc: abstract away knowledge of IDR internals tpm: use idr_find(), not idr_find_slowpath() idr: add ida_is_empty radix tree test suite: check multiorder iteration radix-tree: fix replacement for multiorder entries radix-tree: add radix_tree_split_preload() radix-tree: add radix_tree_split radix-tree: add radix_tree_join radix-tree: delete radix_tree_range_tag_if_tagged() radix-tree: delete radix_tree_locate_item() radix-tree: improve multiorder iterators btrfs: fix race in btrfs_free_dummy_fs_info() radix-tree: improve dump output radix-tree: make radix_tree_find_next_bit more useful ...
Diffstat (limited to 'include/linux/nmi.h')
-rw-r--r--include/linux/nmi.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/nmi.h b/include/linux/nmi.h
index a78c35cff1ae..aacca824a6ae 100644
--- a/include/linux/nmi.h
+++ b/include/linux/nmi.h
@@ -7,6 +7,23 @@
7#include <linux/sched.h> 7#include <linux/sched.h>
8#include <asm/irq.h> 8#include <asm/irq.h>
9 9
10/*
11 * The run state of the lockup detectors is controlled by the content of the
12 * 'watchdog_enabled' variable. Each lockup detector has its dedicated bit -
13 * bit 0 for the hard lockup detector and bit 1 for the soft lockup detector.
14 *
15 * 'watchdog_user_enabled', 'nmi_watchdog_enabled' and 'soft_watchdog_enabled'
16 * are variables that are only used as an 'interface' between the parameters
17 * in /proc/sys/kernel and the internal state bits in 'watchdog_enabled'. The
18 * 'watchdog_thresh' variable is handled differently because its value is not
19 * boolean, and the lockup detectors are 'suspended' while 'watchdog_thresh'
20 * is equal zero.
21 */
22#define NMI_WATCHDOG_ENABLED_BIT 0
23#define SOFT_WATCHDOG_ENABLED_BIT 1
24#define NMI_WATCHDOG_ENABLED (1 << NMI_WATCHDOG_ENABLED_BIT)
25#define SOFT_WATCHDOG_ENABLED (1 << SOFT_WATCHDOG_ENABLED_BIT)
26
10/** 27/**
11 * touch_nmi_watchdog - restart NMI watchdog timeout. 28 * touch_nmi_watchdog - restart NMI watchdog timeout.
12 * 29 *
@@ -91,9 +108,16 @@ extern int nmi_watchdog_enabled;
91extern int soft_watchdog_enabled; 108extern int soft_watchdog_enabled;
92extern int watchdog_user_enabled; 109extern int watchdog_user_enabled;
93extern int watchdog_thresh; 110extern int watchdog_thresh;
111extern unsigned long watchdog_enabled;
94extern unsigned long *watchdog_cpumask_bits; 112extern unsigned long *watchdog_cpumask_bits;
113#ifdef CONFIG_SMP
95extern int sysctl_softlockup_all_cpu_backtrace; 114extern int sysctl_softlockup_all_cpu_backtrace;
96extern int sysctl_hardlockup_all_cpu_backtrace; 115extern int sysctl_hardlockup_all_cpu_backtrace;
116#else
117#define sysctl_softlockup_all_cpu_backtrace 0
118#define sysctl_hardlockup_all_cpu_backtrace 0
119#endif
120extern bool is_hardlockup(void);
97struct ctl_table; 121struct ctl_table;
98extern int proc_watchdog(struct ctl_table *, int , 122extern int proc_watchdog(struct ctl_table *, int ,
99 void __user *, size_t *, loff_t *); 123 void __user *, size_t *, loff_t *);