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 */ |
