diff options
author | Don Zickus <dzickus@redhat.com> | 2010-05-07 17:11:45 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2010-05-12 17:55:43 -0400 |
commit | 332fbdbca3f7716c5620970755ae054d213bcc4e (patch) | |
tree | ce6fe479c9b362fab1ce9530a0f6545d9f79025d | |
parent | 58687acba59266735adb8ccd9b5b9aa2c7cd205b (diff) |
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: Don 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: Frederic Weisbecker <fweisbec@gmail.com>
-rw-r--r-- | include/linux/sched.h | 16 | ||||
-rw-r--r-- | kernel/sysctl.c | 9 | ||||
-rw-r--r-- | kernel/timer.c | 1 | ||||
-rw-r--r-- | kernel/watchdog.c | 35 |
4 files changed, 6 insertions, 55 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 37efe8fa5306..33f9b2ad0bbb 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -312,19 +312,15 @@ extern void scheduler_tick(void); | |||
312 | extern void sched_show_task(struct task_struct *p); | 312 | extern void sched_show_task(struct task_struct *p); |
313 | 313 | ||
314 | #ifdef CONFIG_DETECT_SOFTLOCKUP | 314 | #ifdef CONFIG_DETECT_SOFTLOCKUP |
315 | extern void softlockup_tick(void); | ||
316 | extern void touch_softlockup_watchdog(void); | 315 | extern void touch_softlockup_watchdog(void); |
317 | extern void touch_softlockup_watchdog_sync(void); | 316 | extern void touch_softlockup_watchdog_sync(void); |
318 | extern void touch_all_softlockup_watchdogs(void); | 317 | extern void touch_all_softlockup_watchdogs(void); |
319 | extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | 318 | extern int proc_dowatchdog_thresh(struct ctl_table *table, int write, |
320 | void __user *buffer, | 319 | void __user *buffer, |
321 | size_t *lenp, loff_t *ppos); | 320 | size_t *lenp, loff_t *ppos); |
322 | extern unsigned int softlockup_panic; | 321 | extern unsigned int softlockup_panic; |
323 | extern int softlockup_thresh; | 322 | extern int softlockup_thresh; |
324 | #else | 323 | #else |
325 | static inline void softlockup_tick(void) | ||
326 | { | ||
327 | } | ||
328 | static inline void touch_softlockup_watchdog(void) | 324 | static inline void touch_softlockup_watchdog(void) |
329 | { | 325 | { |
330 | } | 326 | } |
@@ -346,12 +342,6 @@ extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write, | |||
346 | size_t *lenp, loff_t *ppos); | 342 | size_t *lenp, loff_t *ppos); |
347 | #endif | 343 | #endif |
348 | 344 | ||
349 | #ifdef CONFIG_LOCKUP_DETECTOR | ||
350 | extern int proc_dowatchdog_thresh(struct ctl_table *table, int write, | ||
351 | void __user *buffer, | ||
352 | size_t *lenp, loff_t *ppos); | ||
353 | #endif | ||
354 | |||
355 | /* Attach to any functions which should be ignored in wchan output. */ | 345 | /* Attach to any functions which should be ignored in wchan output. */ |
356 | #define __sched __attribute__((__section__(".sched.text"))) | 346 | #define __sched __attribute__((__section__(".sched.text"))) |
357 | 347 | ||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 0f9adda85f97..999bc3fccf47 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -817,15 +817,6 @@ static struct ctl_table kern_table[] = { | |||
817 | .extra1 = &zero, | 817 | .extra1 = &zero, |
818 | .extra2 = &one, | 818 | .extra2 = &one, |
819 | }, | 819 | }, |
820 | { | ||
821 | .procname = "softlockup_thresh", | ||
822 | .data = &softlockup_thresh, | ||
823 | .maxlen = sizeof(int), | ||
824 | .mode = 0644, | ||
825 | .proc_handler = proc_dosoftlockup_thresh, | ||
826 | .extra1 = &neg_one, | ||
827 | .extra2 = &sixty, | ||
828 | }, | ||
829 | #endif | 820 | #endif |
830 | #ifdef CONFIG_DETECT_HUNG_TASK | 821 | #ifdef CONFIG_DETECT_HUNG_TASK |
831 | { | 822 | { |
diff --git a/kernel/timer.c b/kernel/timer.c index aeb6a54f2771..e8de5eb07a02 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
@@ -1225,7 +1225,6 @@ void run_local_timers(void) | |||
1225 | { | 1225 | { |
1226 | hrtimer_run_queues(); | 1226 | hrtimer_run_queues(); |
1227 | raise_softirq(TIMER_SOFTIRQ); | 1227 | raise_softirq(TIMER_SOFTIRQ); |
1228 | softlockup_tick(); | ||
1229 | } | 1228 | } |
1230 | 1229 | ||
1231 | /* | 1230 | /* |
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 6b7fad8497af..f1541b7e3244 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c | |||
@@ -119,13 +119,12 @@ static void __touch_watchdog(void) | |||
119 | __get_cpu_var(watchdog_touch_ts) = get_timestamp(this_cpu); | 119 | __get_cpu_var(watchdog_touch_ts) = get_timestamp(this_cpu); |
120 | } | 120 | } |
121 | 121 | ||
122 | void touch_watchdog(void) | 122 | void touch_softlockup_watchdog(void) |
123 | { | 123 | { |
124 | __get_cpu_var(watchdog_touch_ts) = 0; | 124 | __get_cpu_var(watchdog_touch_ts) = 0; |
125 | } | 125 | } |
126 | EXPORT_SYMBOL(touch_watchdog); | ||
127 | 126 | ||
128 | void touch_all_watchdog(void) | 127 | void touch_all_softlockup_watchdogs(void) |
129 | { | 128 | { |
130 | int cpu; | 129 | int cpu; |
131 | 130 | ||
@@ -140,35 +139,16 @@ void touch_all_watchdog(void) | |||
140 | 139 | ||
141 | void touch_nmi_watchdog(void) | 140 | void touch_nmi_watchdog(void) |
142 | { | 141 | { |
143 | touch_watchdog(); | 142 | touch_softlockup_watchdog(); |
144 | } | 143 | } |
145 | EXPORT_SYMBOL(touch_nmi_watchdog); | 144 | EXPORT_SYMBOL(touch_nmi_watchdog); |
146 | 145 | ||
147 | void touch_all_nmi_watchdog(void) | ||
148 | { | ||
149 | touch_all_watchdog(); | ||
150 | } | ||
151 | |||
152 | void touch_softlockup_watchdog(void) | ||
153 | { | ||
154 | touch_watchdog(); | ||
155 | } | ||
156 | |||
157 | void touch_all_softlockup_watchdogs(void) | ||
158 | { | ||
159 | touch_all_watchdog(); | ||
160 | } | ||
161 | |||
162 | void touch_softlockup_watchdog_sync(void) | 146 | void touch_softlockup_watchdog_sync(void) |
163 | { | 147 | { |
164 | __raw_get_cpu_var(softlockup_touch_sync) = true; | 148 | __raw_get_cpu_var(softlockup_touch_sync) = true; |
165 | __raw_get_cpu_var(watchdog_touch_ts) = 0; | 149 | __raw_get_cpu_var(watchdog_touch_ts) = 0; |
166 | } | 150 | } |
167 | 151 | ||
168 | void softlockup_tick(void) | ||
169 | { | ||
170 | } | ||
171 | |||
172 | #ifdef CONFIG_PERF_EVENTS_NMI | 152 | #ifdef CONFIG_PERF_EVENTS_NMI |
173 | /* watchdog detector functions */ | 153 | /* watchdog detector functions */ |
174 | static int is_hardlockup(int cpu) | 154 | static int is_hardlockup(int cpu) |
@@ -522,15 +502,6 @@ int proc_dowatchdog_thresh(struct ctl_table *table, int write, | |||
522 | { | 502 | { |
523 | return proc_dointvec_minmax(table, write, buffer, lenp, ppos); | 503 | return proc_dointvec_minmax(table, write, buffer, lenp, ppos); |
524 | } | 504 | } |
525 | |||
526 | /* stub functions */ | ||
527 | int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | ||
528 | void __user *buffer, | ||
529 | size_t *lenp, loff_t *ppos) | ||
530 | { | ||
531 | return proc_dowatchdog_thresh(table, write, buffer, lenp, ppos); | ||
532 | } | ||
533 | /* end of stub functions */ | ||
534 | #endif /* CONFIG_SYSCTL */ | 505 | #endif /* CONFIG_SYSCTL */ |
535 | 506 | ||
536 | 507 | ||