From: Helge Deller <deller@gmx.de> To: linux-parisc@vger.kernel.org, James Bottomley <James.Bottomley@HansenPartnership.com>, John David Anglin <dave.anglin@bell.net>, James Hogan <james.hogan@imgtec.com>, linux-metag@vger.kernel.org, linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] parisc,metag: Implement CONFIG_DEBUG_STACK_USAGE option Date: Sat, 19 Mar 2016 17:54:10 +0100 [thread overview] Message-ID: <20160319165410.GA31630@p100.box> (raw) On parisc and metag the stack grows upwards, so for those we need to scan the stack downwards in order to calculate how much stack a process has used. Tested on a 64bit parisc kernel. Signed-off-by: Helge Deller <deller@gmx.de> diff --git a/include/linux/sched.h b/include/linux/sched.h index 084ed9f..71591f3 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2859,10 +2859,18 @@ static inline unsigned long stack_not_used(struct task_struct *p) unsigned long *n = end_of_stack(p); do { /* Skip over canary */ +# ifdef CONFIG_STACK_GROWSUP + n--; +# else n++; +# endif } while (!*n); +# ifdef CONFIG_STACK_GROWSUP + return (unsigned long)end_of_stack(p) - (unsigned long)n; +# else return (unsigned long)n - (unsigned long)end_of_stack(p); +# endif } #endif extern void set_task_stack_end_magic(struct task_struct *tsk); diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f28f7fa..901f96c 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -546,7 +546,7 @@ config DEBUG_KMEMLEAK_DEFAULT_OFF config DEBUG_STACK_USAGE bool "Stack utilization instrumentation" - depends on DEBUG_KERNEL && !IA64 && !PARISC && !METAG + depends on DEBUG_KERNEL && !IA64 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.
WARNING: multiple messages have this Message-ID (diff)
From: Helge Deller <deller@gmx.de> To: linux-parisc@vger.kernel.org, James Bottomley <James.Bottomley@HansenPartnership.com>, John David Anglin <dave.anglin@bell.net>, James Hogan <james.hogan@imgtec.com>, linux-metag@vger.kernel.org, linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] parisc,metag: Implement CONFIG_DEBUG_STACK_USAGE option Date: Sat, 19 Mar 2016 16:54:10 +0000 [thread overview] Message-ID: <20160319165410.GA31630@p100.box> (raw) On parisc and metag the stack grows upwards, so for those we need to scan the stack downwards in order to calculate how much stack a process has used. Tested on a 64bit parisc kernel. Signed-off-by: Helge Deller <deller@gmx.de> diff --git a/include/linux/sched.h b/include/linux/sched.h index 084ed9f..71591f3 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2859,10 +2859,18 @@ static inline unsigned long stack_not_used(struct task_struct *p) unsigned long *n = end_of_stack(p); do { /* Skip over canary */ +# ifdef CONFIG_STACK_GROWSUP + n--; +# else n++; +# endif } while (!*n); +# ifdef CONFIG_STACK_GROWSUP + return (unsigned long)end_of_stack(p) - (unsigned long)n; +# else return (unsigned long)n - (unsigned long)end_of_stack(p); +# endif } #endif extern void set_task_stack_end_magic(struct task_struct *tsk); diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f28f7fa..901f96c 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -546,7 +546,7 @@ config DEBUG_KMEMLEAK_DEFAULT_OFF config DEBUG_STACK_USAGE bool "Stack utilization instrumentation" - depends on DEBUG_KERNEL && !IA64 && !PARISC && !METAG + depends on DEBUG_KERNEL && !IA64 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.
next reply other threads:[~2016-03-19 16:54 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-19 16:54 Helge Deller [this message] 2016-03-19 16:54 ` [PATCH] parisc,metag: Implement CONFIG_DEBUG_STACK_USAGE option Helge Deller 2016-04-29 22:04 ` James Hogan 2016-04-29 22:04 ` James Hogan 2016-04-29 22:04 ` James Hogan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160319165410.GA31630@p100.box \ --to=deller@gmx.de \ --cc=James.Bottomley@HansenPartnership.com \ --cc=dave.anglin@bell.net \ --cc=james.hogan@imgtec.com \ --cc=linux-ia64@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-metag@vger.kernel.org \ --cc=linux-parisc@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.