nmi_watchdog: Clean up various small details
Mostly copy/paste whitespace damage with a couple of nitpicks by the checkpatch script. Fix the struct definition as requested by Ingo too. Signed-off-by: Don Zickus <dzickus@redhat.com> Cc: peterz@infradead.org Cc: gorcunov@gmail.com Cc: aris@redhat.com LKML-Reference: <1266880143-24943-1-git-send-email-dzickus@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> -- arch/x86/kernel/apic/hw_nmi.c | 14 +++++------ arch/x86/kernel/traps.c | 6 ++-- include/linux/nmi.h | 2 - kernel/nmi_watchdog.c | 51 ++++++++++++++++++++---------------------- 4 files changed, 36 insertions(+), 37 deletions(-)
This commit is contained in:
parent
2cc4452bc3
commit
47195d5763
4 changed files with 36 additions and 37 deletions
|
@ -38,15 +38,15 @@ static inline unsigned int get_timer_irqs(int cpu)
|
||||||
irqs += per_cpu(irq_stat, cpu).apic_timer_irqs;
|
irqs += per_cpu(irq_stat, cpu).apic_timer_irqs;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return irqs;
|
return irqs;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int mce_in_progress(void)
|
static inline int mce_in_progress(void)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_X86_MCE)
|
#if defined(CONFIG_X86_MCE)
|
||||||
return atomic_read(&mce_entry) > 0;
|
return atomic_read(&mce_entry) > 0;
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hw_nmi_is_cpu_stuck(struct pt_regs *regs)
|
int hw_nmi_is_cpu_stuck(struct pt_regs *regs)
|
||||||
|
@ -69,9 +69,9 @@ int hw_nmi_is_cpu_stuck(struct pt_regs *regs)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if we are doing an mce, just assume the cpu is not stuck */
|
/* if we are doing an mce, just assume the cpu is not stuck */
|
||||||
/* Could check oops_in_progress here too, but it's safer not to */
|
/* Could check oops_in_progress here too, but it's safer not to */
|
||||||
if (mce_in_progress())
|
if (mce_in_progress())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* We determine if the cpu is stuck by checking whether any
|
/* We determine if the cpu is stuck by checking whether any
|
||||||
* interrupts have happened since we last checked. Of course
|
* interrupts have happened since we last checked. Of course
|
||||||
|
@ -89,7 +89,7 @@ int hw_nmi_is_cpu_stuck(struct pt_regs *regs)
|
||||||
|
|
||||||
u64 hw_nmi_get_sample_period(void)
|
u64 hw_nmi_get_sample_period(void)
|
||||||
{
|
{
|
||||||
return cpu_khz * 1000;
|
return cpu_khz * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ARCH_HAS_NMI_WATCHDOG
|
#ifdef ARCH_HAS_NMI_WATCHDOG
|
||||||
|
|
|
@ -402,9 +402,9 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef CONFIG_X86_LOCAL_APIC
|
#ifdef CONFIG_X86_LOCAL_APIC
|
||||||
if (notify_die(DIE_NMI, "nmi", regs, reason, 2, SIGINT)
|
if (notify_die(DIE_NMI, "nmi", regs, reason, 2, SIGINT)
|
||||||
== NOTIFY_STOP)
|
== NOTIFY_STOP)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifndef CONFIG_NMI_WATCHDOG
|
#ifndef CONFIG_NMI_WATCHDOG
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -57,7 +57,7 @@ u64 hw_nmi_get_sample_period(void);
|
||||||
extern int nmi_watchdog_enabled;
|
extern int nmi_watchdog_enabled;
|
||||||
struct ctl_table;
|
struct ctl_table;
|
||||||
extern int proc_nmi_enabled(struct ctl_table *, int ,
|
extern int proc_nmi_enabled(struct ctl_table *, int ,
|
||||||
void __user *, size_t *, loff_t *);
|
void __user *, size_t *, loff_t *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -50,31 +50,31 @@ void touch_all_nmi_watchdog(void)
|
||||||
|
|
||||||
static int __init setup_nmi_watchdog(char *str)
|
static int __init setup_nmi_watchdog(char *str)
|
||||||
{
|
{
|
||||||
if (!strncmp(str, "panic", 5)) {
|
if (!strncmp(str, "panic", 5)) {
|
||||||
panic_on_timeout = 1;
|
panic_on_timeout = 1;
|
||||||
str = strchr(str, ',');
|
str = strchr(str, ',');
|
||||||
if (!str)
|
if (!str)
|
||||||
return 1;
|
return 1;
|
||||||
++str;
|
++str;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
__setup("nmi_watchdog=", setup_nmi_watchdog);
|
__setup("nmi_watchdog=", setup_nmi_watchdog);
|
||||||
|
|
||||||
struct perf_event_attr wd_hw_attr = {
|
struct perf_event_attr wd_hw_attr = {
|
||||||
.type = PERF_TYPE_HARDWARE,
|
.type = PERF_TYPE_HARDWARE,
|
||||||
.config = PERF_COUNT_HW_CPU_CYCLES,
|
.config = PERF_COUNT_HW_CPU_CYCLES,
|
||||||
.size = sizeof(struct perf_event_attr),
|
.size = sizeof(struct perf_event_attr),
|
||||||
.pinned = 1,
|
.pinned = 1,
|
||||||
.disabled = 1,
|
.disabled = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct perf_event_attr wd_sw_attr = {
|
struct perf_event_attr wd_sw_attr = {
|
||||||
.type = PERF_TYPE_SOFTWARE,
|
.type = PERF_TYPE_SOFTWARE,
|
||||||
.config = PERF_COUNT_SW_CPU_CLOCK,
|
.config = PERF_COUNT_SW_CPU_CLOCK,
|
||||||
.size = sizeof(struct perf_event_attr),
|
.size = sizeof(struct perf_event_attr),
|
||||||
.pinned = 1,
|
.pinned = 1,
|
||||||
.disabled = 1,
|
.disabled = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
void wd_overflow(struct perf_event *event, int nmi,
|
void wd_overflow(struct perf_event *event, int nmi,
|
||||||
|
@ -95,16 +95,15 @@ void wd_overflow(struct perf_event *event, int nmi,
|
||||||
* Ayiee, looks like this CPU is stuck ...
|
* Ayiee, looks like this CPU is stuck ...
|
||||||
* wait a few IRQs (5 seconds) before doing the oops ...
|
* wait a few IRQs (5 seconds) before doing the oops ...
|
||||||
*/
|
*/
|
||||||
per_cpu(alert_counter,cpu) += 1;
|
per_cpu(alert_counter, cpu) += 1;
|
||||||
if (per_cpu(alert_counter,cpu) == 5) {
|
if (per_cpu(alert_counter, cpu) == 5) {
|
||||||
if (panic_on_timeout) {
|
if (panic_on_timeout)
|
||||||
panic("NMI Watchdog detected LOCKUP on cpu %d", cpu);
|
panic("NMI Watchdog detected LOCKUP on cpu %d", cpu);
|
||||||
} else {
|
else
|
||||||
WARN(1, "NMI Watchdog detected LOCKUP on cpu %d", cpu);
|
WARN(1, "NMI Watchdog detected LOCKUP on cpu %d", cpu);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
per_cpu(alert_counter,cpu) = 0;
|
per_cpu(alert_counter, cpu) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -126,7 +125,7 @@ static int enable_nmi_watchdog(int cpu)
|
||||||
event = perf_event_create_kernel_counter(wd_attr, cpu, -1, wd_overflow);
|
event = perf_event_create_kernel_counter(wd_attr, cpu, -1, wd_overflow);
|
||||||
if (IS_ERR(event)) {
|
if (IS_ERR(event)) {
|
||||||
/* hardware doesn't exist or not supported, fallback to software events */
|
/* hardware doesn't exist or not supported, fallback to software events */
|
||||||
printk("nmi_watchdog: hardware not available, trying software events\n");
|
printk(KERN_INFO "nmi_watchdog: hardware not available, trying software events\n");
|
||||||
wd_attr = &wd_sw_attr;
|
wd_attr = &wd_sw_attr;
|
||||||
wd_attr->sample_period = NSEC_PER_SEC;
|
wd_attr->sample_period = NSEC_PER_SEC;
|
||||||
event = perf_event_create_kernel_counter(wd_attr, cpu, -1, wd_overflow);
|
event = perf_event_create_kernel_counter(wd_attr, cpu, -1, wd_overflow);
|
||||||
|
@ -182,7 +181,7 @@ int proc_nmi_enabled(struct ctl_table *table, int write,
|
||||||
if (nmi_watchdog_enabled) {
|
if (nmi_watchdog_enabled) {
|
||||||
for_each_online_cpu(cpu)
|
for_each_online_cpu(cpu)
|
||||||
if (enable_nmi_watchdog(cpu)) {
|
if (enable_nmi_watchdog(cpu)) {
|
||||||
printk("NMI watchdog failed configuration, "
|
printk(KERN_ERR "NMI watchdog failed configuration, "
|
||||||
" can not be enabled\n");
|
" can not be enabled\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue