diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 17:11:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 17:11:07 -0400 |
commit | 1551260d1f0fb1d23f264582092b862fce5e2dbd (patch) | |
tree | d06a0d20c74adda44a78bc2dc9a3e3016de380d6 /include/linux/sched.h | |
parent | c93f216b5b985a12a18323e5ca2eb01db3d2f000 (diff) | |
parent | 5e34437840d33554f69380584311743b39e8fbeb (diff) |
Merge branch 'core/softlockup' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core/softlockup' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
softlockup: make DETECT_HUNG_TASK default depend on DETECT_SOFTLOCKUP
softlockup: move 'one' to the softlockup section in sysctl.c
softlockup: ensure the task has been switched out once
softlockup: remove timestamp checking from hung_task
softlockup: convert read_lock in hung_task to rcu_read_lock
softlockup: check all tasks in hung_task
softlockup: remove unused definition for spawn_softlockup_task
softlockup: fix potential race in hung_task when resetting timeout
softlockup: fix to allow compiling with !DETECT_HUNG_TASK
softlockup: decouple hung tasks check from softlockup detection
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r-- | include/linux/sched.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index c96140210d1c..98e1fe51601d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -300,17 +300,11 @@ extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | |||
300 | struct file *filp, void __user *buffer, | 300 | struct file *filp, void __user *buffer, |
301 | size_t *lenp, loff_t *ppos); | 301 | size_t *lenp, loff_t *ppos); |
302 | extern unsigned int softlockup_panic; | 302 | extern unsigned int softlockup_panic; |
303 | extern unsigned long sysctl_hung_task_check_count; | ||
304 | extern unsigned long sysctl_hung_task_timeout_secs; | ||
305 | extern unsigned long sysctl_hung_task_warnings; | ||
306 | extern int softlockup_thresh; | 303 | extern int softlockup_thresh; |
307 | #else | 304 | #else |
308 | static inline void softlockup_tick(void) | 305 | static inline void softlockup_tick(void) |
309 | { | 306 | { |
310 | } | 307 | } |
311 | static inline void spawn_softlockup_task(void) | ||
312 | { | ||
313 | } | ||
314 | static inline void touch_softlockup_watchdog(void) | 308 | static inline void touch_softlockup_watchdog(void) |
315 | { | 309 | { |
316 | } | 310 | } |
@@ -319,6 +313,15 @@ static inline void touch_all_softlockup_watchdogs(void) | |||
319 | } | 313 | } |
320 | #endif | 314 | #endif |
321 | 315 | ||
316 | #ifdef CONFIG_DETECT_HUNG_TASK | ||
317 | extern unsigned int sysctl_hung_task_panic; | ||
318 | extern unsigned long sysctl_hung_task_check_count; | ||
319 | extern unsigned long sysctl_hung_task_timeout_secs; | ||
320 | extern unsigned long sysctl_hung_task_warnings; | ||
321 | extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write, | ||
322 | struct file *filp, void __user *buffer, | ||
323 | size_t *lenp, loff_t *ppos); | ||
324 | #endif | ||
322 | 325 | ||
323 | /* Attach to any functions which should be ignored in wchan output. */ | 326 | /* Attach to any functions which should be ignored in wchan output. */ |
324 | #define __sched __attribute__((__section__(".sched.text"))) | 327 | #define __sched __attribute__((__section__(".sched.text"))) |
@@ -1255,9 +1258,8 @@ struct task_struct { | |||
1255 | /* ipc stuff */ | 1258 | /* ipc stuff */ |
1256 | struct sysv_sem sysvsem; | 1259 | struct sysv_sem sysvsem; |
1257 | #endif | 1260 | #endif |
1258 | #ifdef CONFIG_DETECT_SOFTLOCKUP | 1261 | #ifdef CONFIG_DETECT_HUNG_TASK |
1259 | /* hung task detection */ | 1262 | /* hung task detection */ |
1260 | unsigned long last_switch_timestamp; | ||
1261 | unsigned long last_switch_count; | 1263 | unsigned long last_switch_count; |
1262 | #endif | 1264 | #endif |
1263 | /* CPU-specific state of this task */ | 1265 | /* CPU-specific state of this task */ |