Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8501a2fb authored by Eric Sandeen's avatar Eric Sandeen Committed by Linus Torvalds
Browse files

[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: default avatarEric Sandeen <sandeen@sgi.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4961f10e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -42,6 +42,15 @@ config DEBUG_STACKOVERFLOW
	  This option will cause messages to be printed if free stack space
	  drops below a certain limit.

config DEBUG_STACK_USAGE
        bool "Stack utilization instrumentation"
        depends on DEBUG_KERNEL
        help
	  Enables the display of the minimum amount of free stack which each
	  task has ever had available in the sysrq-T and sysrq-P debug output.

	  This option will slow down process creation somewhat.

#config X86_REMOTE_DEBUG
#       bool "kgdb debugging stub"

+13 −0
Original line number Diff line number Diff line
@@ -73,8 +73,21 @@ static inline struct thread_info *stack_thread_info(void)
}

/* thread information allocation */
#ifdef CONFIG_DEBUG_STACK_USAGE
#define alloc_thread_info(tsk)					\
    ({								\
	struct thread_info *ret;				\
								\
	ret = ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)); \
	if (ret)						\
		memset(ret, 0, THREAD_SIZE);			\
	ret;							\
    })
#else
#define alloc_thread_info(tsk) \
	((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER))
#endif

#define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER)

#else /* !__ASSEMBLY__ */