aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Zickus <dzickus@redhat.com>2010-05-07 17:11:45 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2010-05-12 17:55:43 -0400
commit332fbdbca3f7716c5620970755ae054d213bcc4e (patch)
treece6fe479c9b362fab1ce9530a0f6545d9f79025d
parent58687acba59266735adb8ccd9b5b9aa2c7cd205b (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.h16
-rw-r--r--kernel/sysctl.c9
-rw-r--r--kernel/timer.c1
-rw-r--r--kernel/watchdog.c35
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);
312extern void sched_show_task(struct task_struct *p); 312extern void sched_show_task(struct task_struct *p);
313 313
314#ifdef CONFIG_DETECT_SOFTLOCKUP 314#ifdef CONFIG_DETECT_SOFTLOCKUP
315extern void softlockup_tick(void);
316extern void touch_softlockup_watchdog(void); 315extern void touch_softlockup_watchdog(void);
317extern void touch_softlockup_watchdog_sync(void); 316extern void touch_softlockup_watchdog_sync(void);
318extern void touch_all_softlockup_watchdogs(void); 317extern void touch_all_softlockup_watchdogs(void);
319extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, 318extern 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);
322extern unsigned int softlockup_panic; 321extern unsigned int softlockup_panic;
323extern int softlockup_thresh; 322extern int softlockup_thresh;
324#else 323#else
325static inline void softlockup_tick(void)
326{
327}
328static inline void touch_softlockup_watchdog(void) 324static 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
350extern 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
122void touch_watchdog(void) 122void touch_softlockup_watchdog(void)
123{ 123{
124 __get_cpu_var(watchdog_touch_ts) = 0; 124 __get_cpu_var(watchdog_touch_ts) = 0;
125} 125}
126EXPORT_SYMBOL(touch_watchdog);
127 126
128void touch_all_watchdog(void) 127void 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
141void touch_nmi_watchdog(void) 140void touch_nmi_watchdog(void)
142{ 141{
143 touch_watchdog(); 142 touch_softlockup_watchdog();
144} 143}
145EXPORT_SYMBOL(touch_nmi_watchdog); 144EXPORT_SYMBOL(touch_nmi_watchdog);
146 145
147void touch_all_nmi_watchdog(void)
148{
149 touch_all_watchdog();
150}
151
152void touch_softlockup_watchdog(void)
153{
154 touch_watchdog();
155}
156
157void touch_all_softlockup_watchdogs(void)
158{
159 touch_all_watchdog();
160}
161
162void touch_softlockup_watchdog_sync(void) 146void 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
168void 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 */
174static int is_hardlockup(int cpu) 154static 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 */
527int 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