LKML Archive on lore.kernel.org
 help / Atom feed
* [PATCH RFC] debugobjects: Make stack check warning more informative
@ 2018-07-23 21:25 Joel Fernandes
  2018-07-23 21:54 ` Yang Shi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Joel Fernandes @ 2018-07-23 21:25 UTC (permalink / raw)
  To: linux-kernel
  Cc: kernel-team, Joel Fernandes (Google),
	Thomas Gleixner, Yang Shi, Waiman Long, Arnd Bergmann, astrachan

From: "Joel Fernandes (Google)" <joel@joelfernandes.org>

Recently we debugged an issue where debugobject tracking was telling
us of an annotation issue. Turns out the issue was due to the object in
concern being on a different stack which was due to another issue.

Discussing with tglx, he suggested printing the pointers and the
location of the stack for the currently running task. This helped find
the object was on the wrong stack. I turned the resulting patch into
something upstreamable, so that the error message is more informative
and can help in debugging for similar issues in the future.

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
---
 lib/debugobjects.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 994be4805cec..24c1df0d7466 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -360,9 +360,12 @@ static void debug_object_is_on_stack(void *addr, int onstack)
 
 	limit++;
 	if (is_on_stack)
-		pr_warn("object is on stack, but not annotated\n");
+		pr_warn("object %p is on stack %p, but NOT annotated.\n", addr,
+			 task_stack_page(current));
 	else
-		pr_warn("object is not on stack, but annotated\n");
+		pr_warn("object %p is NOT on stack %p, but annotated.\n", addr,
+			 task_stack_page(current));
+
 	WARN_ON(1);
 }
 
-- 
2.18.0.233.g985f88cf7e-goog


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH RFC] debugobjects: Make stack check warning more informative
  2018-07-23 21:25 [PATCH RFC] debugobjects: Make stack check warning more informative Joel Fernandes
@ 2018-07-23 21:54 ` Yang Shi
  2018-07-24  0:33 ` Waiman Long
  2018-07-30 19:39 ` [tip:core/debugobjects] " tip-bot for Joel Fernandes (Google)
  2 siblings, 0 replies; 4+ messages in thread
From: Yang Shi @ 2018-07-23 21:54 UTC (permalink / raw)
  To: Joel Fernandes, linux-kernel
  Cc: kernel-team, Thomas Gleixner, Waiman Long, Arnd Bergmann, astrachan



On 7/23/18 2:25 PM, Joel Fernandes wrote:
> From: "Joel Fernandes (Google)" <joel@joelfernandes.org>
>
> Recently we debugged an issue where debugobject tracking was telling
> us of an annotation issue. Turns out the issue was due to the object in
> concern being on a different stack which was due to another issue.
>
> Discussing with tglx, he suggested printing the pointers and the
> location of the stack for the currently running task. This helped find
> the object was on the wrong stack. I turned the resulting patch into
> something upstreamable, so that the error message is more informative
> and can help in debugging for similar issues in the future.

Acked-by: Yang Shi <yang.shi@linux.alibaba.com>

>
> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> ---
>   lib/debugobjects.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/lib/debugobjects.c b/lib/debugobjects.c
> index 994be4805cec..24c1df0d7466 100644
> --- a/lib/debugobjects.c
> +++ b/lib/debugobjects.c
> @@ -360,9 +360,12 @@ static void debug_object_is_on_stack(void *addr, int onstack)
>   
>   	limit++;
>   	if (is_on_stack)
> -		pr_warn("object is on stack, but not annotated\n");
> +		pr_warn("object %p is on stack %p, but NOT annotated.\n", addr,
> +			 task_stack_page(current));
>   	else
> -		pr_warn("object is not on stack, but annotated\n");
> +		pr_warn("object %p is NOT on stack %p, but annotated.\n", addr,
> +			 task_stack_page(current));
> +
>   	WARN_ON(1);
>   }
>   


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH RFC] debugobjects: Make stack check warning more informative
  2018-07-23 21:25 [PATCH RFC] debugobjects: Make stack check warning more informative Joel Fernandes
  2018-07-23 21:54 ` Yang Shi
@ 2018-07-24  0:33 ` Waiman Long
  2018-07-30 19:39 ` [tip:core/debugobjects] " tip-bot for Joel Fernandes (Google)
  2 siblings, 0 replies; 4+ messages in thread
From: Waiman Long @ 2018-07-24  0:33 UTC (permalink / raw)
  To: Joel Fernandes, linux-kernel
  Cc: kernel-team, Thomas Gleixner, Yang Shi, Arnd Bergmann, astrachan

On 07/23/2018 05:25 PM, Joel Fernandes wrote:
> From: "Joel Fernandes (Google)" <joel@joelfernandes.org>
>
> Recently we debugged an issue where debugobject tracking was telling
> us of an annotation issue. Turns out the issue was due to the object in
> concern being on a different stack which was due to another issue.
>
> Discussing with tglx, he suggested printing the pointers and the
> location of the stack for the currently running task. This helped find
> the object was on the wrong stack. I turned the resulting patch into
> something upstreamable, so that the error message is more informative
> and can help in debugging for similar issues in the future.
>
> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> ---
>  lib/debugobjects.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/lib/debugobjects.c b/lib/debugobjects.c
> index 994be4805cec..24c1df0d7466 100644
> --- a/lib/debugobjects.c
> +++ b/lib/debugobjects.c
> @@ -360,9 +360,12 @@ static void debug_object_is_on_stack(void *addr, int onstack)
>  
>  	limit++;
>  	if (is_on_stack)
> -		pr_warn("object is on stack, but not annotated\n");
> +		pr_warn("object %p is on stack %p, but NOT annotated.\n", addr,
> +			 task_stack_page(current));
>  	else
> -		pr_warn("object is not on stack, but annotated\n");
> +		pr_warn("object %p is NOT on stack %p, but annotated.\n", addr,
> +			 task_stack_page(current));
> +
>  	WARN_ON(1);
>  }
>  

Acked-by: Waiman Long <longman@redhat.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:core/debugobjects] debugobjects: Make stack check warning more informative
  2018-07-23 21:25 [PATCH RFC] debugobjects: Make stack check warning more informative Joel Fernandes
  2018-07-23 21:54 ` Yang Shi
  2018-07-24  0:33 ` Waiman Long
@ 2018-07-30 19:39 ` " tip-bot for Joel Fernandes (Google)
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Joel Fernandes (Google) @ 2018-07-30 19:39 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: arnd, yang.shi, hpa, longman, tglx, joel, mingo, linux-kernel

Commit-ID:  fc91a3c4c27acdca0bc13af6fbb68c35cfd519f2
Gitweb:     https://git.kernel.org/tip/fc91a3c4c27acdca0bc13af6fbb68c35cfd519f2
Author:     Joel Fernandes (Google) <joel@joelfernandes.org>
AuthorDate: Mon, 23 Jul 2018 14:25:31 -0700
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Mon, 30 Jul 2018 21:36:37 +0200

debugobjects: Make stack check warning more informative

While debugging an issue debugobject tracking warned about an annotation
issue of an object on stack. It turned out that the issue was due to the
object in concern being on a different stack which was due to another
issue.

Thomas suggested to print the pointers and the location of the stack for
the currently running task. This helped to figure out that the object was
on the wrong stack.

As this is general useful information for debugging similar issues, make
the error message more informative by printing the pointers.

[ tglx: Massaged changelog ]

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Waiman Long <longman@redhat.com>
Acked-by: Yang Shi <yang.shi@linux.alibaba.com>
Cc: kernel-team@android.com
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: astrachan@google.com
Link: https://lkml.kernel.org/r/20180723212531.202328-1-joel@joelfernandes.org

---
 lib/debugobjects.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 994be4805cec..24c1df0d7466 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -360,9 +360,12 @@ static void debug_object_is_on_stack(void *addr, int onstack)
 
 	limit++;
 	if (is_on_stack)
-		pr_warn("object is on stack, but not annotated\n");
+		pr_warn("object %p is on stack %p, but NOT annotated.\n", addr,
+			 task_stack_page(current));
 	else
-		pr_warn("object is not on stack, but annotated\n");
+		pr_warn("object %p is NOT on stack %p, but annotated.\n", addr,
+			 task_stack_page(current));
+
 	WARN_ON(1);
 }
 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-23 21:25 [PATCH RFC] debugobjects: Make stack check warning more informative Joel Fernandes
2018-07-23 21:54 ` Yang Shi
2018-07-24  0:33 ` Waiman Long
2018-07-30 19:39 ` [tip:core/debugobjects] " tip-bot for Joel Fernandes (Google)

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox