diff options
| author | Eric Sandeen <sandeen@sgi.com> | 2006-06-26 08:00:08 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 13:48:22 -0400 |
| commit | 8501a2fbe762b21d2504ed3aca3b52be61b5e6e4 (patch) | |
| tree | 899bf4085bb29927a71dd90b3ed1fb444ed4b0ea /include | |
| parent | 4961f10e2205d0ededa291e12ec634efc58aa93c (diff) | |
[PATCH] x86_64: x86_64 stack usage debugging
Applies to git & 2.6.17-rc6 after CONFIG_DEBUG_STACKOVERFLOW patch
uses same stack-zeroing mechanism as on i386 to discover maximum stack
excursions.
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-x86_64/thread_info.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-x86_64/thread_info.h b/include/asm-x86_64/thread_info.h index b5e88216fd80..2029b00351f3 100644 --- a/include/asm-x86_64/thread_info.h +++ b/include/asm-x86_64/thread_info.h | |||
| @@ -73,8 +73,21 @@ static inline struct thread_info *stack_thread_info(void) | |||
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | /* thread information allocation */ | 75 | /* thread information allocation */ |
| 76 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
| 77 | #define alloc_thread_info(tsk) \ | ||
| 78 | ({ \ | ||
| 79 | struct thread_info *ret; \ | ||
| 80 | \ | ||
| 81 | ret = ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)); \ | ||
| 82 | if (ret) \ | ||
| 83 | memset(ret, 0, THREAD_SIZE); \ | ||
| 84 | ret; \ | ||
| 85 | }) | ||
| 86 | #else | ||
| 76 | #define alloc_thread_info(tsk) \ | 87 | #define alloc_thread_info(tsk) \ |
| 77 | ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)) | 88 | ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)) |
| 89 | #endif | ||
| 90 | |||
| 78 | #define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER) | 91 | #define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER) |
| 79 | 92 | ||
| 80 | #else /* !__ASSEMBLY__ */ | 93 | #else /* !__ASSEMBLY__ */ |
