Message ID | 20201209011303.32737-2-paulmck@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,sl-b,1/5] mm: Add mem_dump_obj() to print source of memory block | expand |
On 12/9/20 2:13 AM, paulmck@kernel.org wrote: > From: "Paul E. McKenney" <paulmck@kernel.org> > > This commit makes mem_dump_obj() call out NULL and zero-sized pointers > specially instead of classifying them as non-paged memory. > > Cc: Christoph Lameter <cl@linux.com> > Cc: Pekka Enberg <penberg@kernel.org> > Cc: David Rientjes <rientjes@google.com> > Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: <linux-mm@kvack.org> > Reported-by: Andrii Nakryiko <andrii@kernel.org> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > mm/util.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/mm/util.c b/mm/util.c > index d0e60d2..8c2449f 100644 > --- a/mm/util.c > +++ b/mm/util.c > @@ -985,7 +985,12 @@ int __weak memcmp_pages(struct page *page1, struct page *page2) > void mem_dump_obj(void *object) > { > if (!virt_addr_valid(object)) { > - pr_cont(" non-paged (local) memory.\n"); > + if (object == NULL) > + pr_cont(" NULL pointer.\n"); > + else if (object == ZERO_SIZE_PTR) > + pr_cont(" zero-size pointer.\n"); > + else > + pr_cont(" non-paged (local) memory.\n"); > return; > } > if (kmem_valid_obj(object)) { >
On Wed, Dec 09, 2020 at 06:48:47PM +0100, Vlastimil Babka wrote: > On 12/9/20 2:13 AM, paulmck@kernel.org wrote: > > From: "Paul E. McKenney" <paulmck@kernel.org> > > > > This commit makes mem_dump_obj() call out NULL and zero-sized pointers > > specially instead of classifying them as non-paged memory. > > > > Cc: Christoph Lameter <cl@linux.com> > > Cc: Pekka Enberg <penberg@kernel.org> > > Cc: David Rientjes <rientjes@google.com> > > Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> > > Cc: Andrew Morton <akpm@linux-foundation.org> > > Cc: <linux-mm@kvack.org> > > Reported-by: Andrii Nakryiko <andrii@kernel.org> > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > Acked-by: Vlastimil Babka <vbabka@suse.cz> Applied, thank you! Thanx, Paul > > --- > > mm/util.c | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/mm/util.c b/mm/util.c > > index d0e60d2..8c2449f 100644 > > --- a/mm/util.c > > +++ b/mm/util.c > > @@ -985,7 +985,12 @@ int __weak memcmp_pages(struct page *page1, struct page *page2) > > void mem_dump_obj(void *object) > > { > > if (!virt_addr_valid(object)) { > > - pr_cont(" non-paged (local) memory.\n"); > > + if (object == NULL) > > + pr_cont(" NULL pointer.\n"); > > + else if (object == ZERO_SIZE_PTR) > > + pr_cont(" zero-size pointer.\n"); > > + else > > + pr_cont(" non-paged (local) memory.\n"); > > return; > > } > > if (kmem_valid_obj(object)) { > > >
diff --git a/mm/util.c b/mm/util.c index d0e60d2..8c2449f 100644 --- a/mm/util.c +++ b/mm/util.c @@ -985,7 +985,12 @@ int __weak memcmp_pages(struct page *page1, struct page *page2) void mem_dump_obj(void *object) { if (!virt_addr_valid(object)) { - pr_cont(" non-paged (local) memory.\n"); + if (object == NULL) + pr_cont(" NULL pointer.\n"); + else if (object == ZERO_SIZE_PTR) + pr_cont(" zero-size pointer.\n"); + else + pr_cont(" non-paged (local) memory.\n"); return; } if (kmem_valid_obj(object)) {