Commit 332fbdbc authored by Don Zickus's avatar Don Zickus Committed by Frederic Weisbecker

lockup_detector: Touch_softlockup cleanups and softlockup_tick removal

Just some code cleanup to make touch_softlockup clearer and remove the
softlockup_tick function as it is no longer needed.

Also remove the /proc softlockup_thres call as it has been changed to
watchdog_thres.
Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Eric Paris <eparis@redhat.com>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
LKML-Reference: <1273266711-18706-3-git-send-email-dzickus@redhat.com>
Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
parent 58687acb
...@@ -312,19 +312,15 @@ extern void scheduler_tick(void); ...@@ -312,19 +312,15 @@ extern void scheduler_tick(void);
extern void sched_show_task(struct task_struct *p); extern void sched_show_task(struct task_struct *p);
#ifdef CONFIG_DETECT_SOFTLOCKUP #ifdef CONFIG_DETECT_SOFTLOCKUP
extern void softlockup_tick(void);
extern void touch_softlockup_watchdog(void); extern void touch_softlockup_watchdog(void);
extern void touch_softlockup_watchdog_sync(void); extern void touch_softlockup_watchdog_sync(void);
extern void touch_all_softlockup_watchdogs(void); extern void touch_all_softlockup_watchdogs(void);
extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, extern int proc_dowatchdog_thresh(struct ctl_table *table, int write,
void __user *buffer, void __user *buffer,
size_t *lenp, loff_t *ppos); size_t *lenp, loff_t *ppos);
extern unsigned int softlockup_panic; extern unsigned int softlockup_panic;
extern int softlockup_thresh; extern int softlockup_thresh;
#else #else
static inline void softlockup_tick(void)
{
}
static inline void touch_softlockup_watchdog(void) static inline void touch_softlockup_watchdog(void)
{ {
} }
...@@ -346,12 +342,6 @@ extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write, ...@@ -346,12 +342,6 @@ extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
size_t *lenp, loff_t *ppos); size_t *lenp, loff_t *ppos);
#endif #endif
#ifdef CONFIG_LOCKUP_DETECTOR
extern int proc_dowatchdog_thresh(struct ctl_table *table, int write,
void __user *buffer,
size_t *lenp, loff_t *ppos);
#endif
/* Attach to any functions which should be ignored in wchan output. */ /* Attach to any functions which should be ignored in wchan output. */
#define __sched __attribute__((__section__(".sched.text"))) #define __sched __attribute__((__section__(".sched.text")))
......
...@@ -817,15 +817,6 @@ static struct ctl_table kern_table[] = { ...@@ -817,15 +817,6 @@ static struct ctl_table kern_table[] = {
.extra1 = &zero, .extra1 = &zero,
.extra2 = &one, .extra2 = &one,
}, },
{
.procname = "softlockup_thresh",
.data = &softlockup_thresh,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dosoftlockup_thresh,
.extra1 = &neg_one,
.extra2 = &sixty,
},
#endif #endif
#ifdef CONFIG_DETECT_HUNG_TASK #ifdef CONFIG_DETECT_HUNG_TASK
{ {
......
...@@ -1225,7 +1225,6 @@ void run_local_timers(void) ...@@ -1225,7 +1225,6 @@ void run_local_timers(void)
{ {
hrtimer_run_queues(); hrtimer_run_queues();
raise_softirq(TIMER_SOFTIRQ); raise_softirq(TIMER_SOFTIRQ);
softlockup_tick();
} }
/* /*
......
...@@ -119,13 +119,12 @@ static void __touch_watchdog(void) ...@@ -119,13 +119,12 @@ static void __touch_watchdog(void)
__get_cpu_var(watchdog_touch_ts) = get_timestamp(this_cpu); __get_cpu_var(watchdog_touch_ts) = get_timestamp(this_cpu);
} }
void touch_watchdog(void) void touch_softlockup_watchdog(void)
{ {
__get_cpu_var(watchdog_touch_ts) = 0; __get_cpu_var(watchdog_touch_ts) = 0;
} }
EXPORT_SYMBOL(touch_watchdog);
void touch_all_watchdog(void) void touch_all_softlockup_watchdogs(void)
{ {
int cpu; int cpu;
...@@ -140,35 +139,16 @@ void touch_all_watchdog(void) ...@@ -140,35 +139,16 @@ void touch_all_watchdog(void)
void touch_nmi_watchdog(void) void touch_nmi_watchdog(void)
{ {
touch_watchdog(); touch_softlockup_watchdog();
} }
EXPORT_SYMBOL(touch_nmi_watchdog); EXPORT_SYMBOL(touch_nmi_watchdog);
void touch_all_nmi_watchdog(void)
{
touch_all_watchdog();
}
void touch_softlockup_watchdog(void)
{
touch_watchdog();
}
void touch_all_softlockup_watchdogs(void)
{
touch_all_watchdog();
}
void touch_softlockup_watchdog_sync(void) void touch_softlockup_watchdog_sync(void)
{ {
__raw_get_cpu_var(softlockup_touch_sync) = true; __raw_get_cpu_var(softlockup_touch_sync) = true;
__raw_get_cpu_var(watchdog_touch_ts) = 0; __raw_get_cpu_var(watchdog_touch_ts) = 0;
} }
void softlockup_tick(void)
{
}
#ifdef CONFIG_PERF_EVENTS_NMI #ifdef CONFIG_PERF_EVENTS_NMI
/* watchdog detector functions */ /* watchdog detector functions */
static int is_hardlockup(int cpu) static int is_hardlockup(int cpu)
...@@ -522,15 +502,6 @@ int proc_dowatchdog_thresh(struct ctl_table *table, int write, ...@@ -522,15 +502,6 @@ int proc_dowatchdog_thresh(struct ctl_table *table, int write,
{ {
return proc_dointvec_minmax(table, write, buffer, lenp, ppos); return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
} }
/* stub functions */
int proc_dosoftlockup_thresh(struct ctl_table *table, int write,
void __user *buffer,
size_t *lenp, loff_t *ppos)
{
return proc_dowatchdog_thresh(table, write, buffer, lenp, ppos);
}
/* end of stub functions */
#endif /* CONFIG_SYSCTL */ #endif /* CONFIG_SYSCTL */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment