This patch prints the status of the memory allocation profiling
before __show_mem actually prints the detailed allocation info.
This way will let us know the `0B` we saw in allocation info is
because the profiling is disabled or the allocation is actually
0B.
Signed-off-by: Yueyang Pan <pyyjason@gmail.com>
---
mm/show_mem.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm/show_mem.c b/mm/show_mem.c
index ecf20a93ea54..51892ce2efc4 100644
--- a/mm/show_mem.c
+++ b/mm/show_mem.c
@@ -427,6 +427,8 @@ void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx)
nr = alloc_tag_top_users(tags, ARRAY_SIZE(tags), false);
if (nr) {
+ pr_notice("Memory alloction profiling is turned %s\n",
+ mem_alloc_profiling_enabled() ? "on" : "off");
pr_notice("Memory allocations:\n");
for (i = 0; i < nr; i++) {
struct codetag *ct = tags[i].ct;
--
2.47.3
On 9/2/25 17:57, Yueyang Pan wrote: > This patch prints the status of the memory allocation profiling > before __show_mem actually prints the detailed allocation info. > This way will let us know the `0B` we saw in allocation info is > because the profiling is disabled or the allocation is actually > 0B. > > Signed-off-by: Yueyang Pan <pyyjason@gmail.com> > --- > mm/show_mem.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/show_mem.c b/mm/show_mem.c > index ecf20a93ea54..51892ce2efc4 100644 > --- a/mm/show_mem.c > +++ b/mm/show_mem.c > @@ -427,6 +427,8 @@ void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx) > > nr = alloc_tag_top_users(tags, ARRAY_SIZE(tags), false); > if (nr) { > + pr_notice("Memory alloction profiling is turned %s\n", There's a typo "alloction". > + mem_alloc_profiling_enabled() ? "on" : "off"); > pr_notice("Memory allocations:\n"); But I think the message would be more obvious if it said e.g.: "Memory allocations (profiling is currently [on/off]):" > for (i = 0; i < nr; i++) { > struct codetag *ct = tags[i].ct;
On Wed, Sep 03, 2025 at 11:26:01AM +0200, Vlastimil Babka wrote: > On 9/2/25 17:57, Yueyang Pan wrote: > > This patch prints the status of the memory allocation profiling > > before __show_mem actually prints the detailed allocation info. > > This way will let us know the `0B` we saw in allocation info is > > because the profiling is disabled or the allocation is actually > > 0B. > > > > Signed-off-by: Yueyang Pan <pyyjason@gmail.com> > > --- > > mm/show_mem.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/mm/show_mem.c b/mm/show_mem.c > > index ecf20a93ea54..51892ce2efc4 100644 > > --- a/mm/show_mem.c > > +++ b/mm/show_mem.c > > @@ -427,6 +427,8 @@ void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx) > > > > nr = alloc_tag_top_users(tags, ARRAY_SIZE(tags), false); > > if (nr) { > > + pr_notice("Memory alloction profiling is turned %s\n", > > There's a typo "alloction". Nice catch. Thanks! > > > + mem_alloc_profiling_enabled() ? "on" : "off"); > > pr_notice("Memory allocations:\n"); > > But I think the message would be more obvious if it said e.g.: > > "Memory allocations (profiling is currently [on/off]):" I can change it in the next version. I saw Andrew gave approval. In this case, shall I send v3 or create a new patch? > > > for (i = 0; i < nr; i++) { > > struct codetag *ct = tags[i].ct; > Thanks Pan
On 9/3/25 11:34, Yueyang Pan wrote: > On Wed, Sep 03, 2025 at 11:26:01AM +0200, Vlastimil Babka wrote: >> On 9/2/25 17:57, Yueyang Pan wrote: >> > This patch prints the status of the memory allocation profiling >> > before __show_mem actually prints the detailed allocation info. >> > This way will let us know the `0B` we saw in allocation info is >> > because the profiling is disabled or the allocation is actually >> > 0B. >> > >> > Signed-off-by: Yueyang Pan <pyyjason@gmail.com> >> > --- >> > mm/show_mem.c | 2 ++ >> > 1 file changed, 2 insertions(+) >> > >> > diff --git a/mm/show_mem.c b/mm/show_mem.c >> > index ecf20a93ea54..51892ce2efc4 100644 >> > --- a/mm/show_mem.c >> > +++ b/mm/show_mem.c >> > @@ -427,6 +427,8 @@ void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx) >> > >> > nr = alloc_tag_top_users(tags, ARRAY_SIZE(tags), false); >> > if (nr) { >> > + pr_notice("Memory alloction profiling is turned %s\n", >> >> There's a typo "alloction". > > Nice catch. Thanks! > >> >> > + mem_alloc_profiling_enabled() ? "on" : "off"); >> > pr_notice("Memory allocations:\n"); >> >> But I think the message would be more obvious if it said e.g.: >> >> "Memory allocations (profiling is currently [on/off]):" > > I can change it in the next version. I saw Andrew gave approval. In this case, shall > I send v3 or create a new patch? You can send v3 (given patch 2/2 needs warning fix too) and Andrew can replace or convert to fixups. >> >> > for (i = 0; i < nr; i++) { >> > struct codetag *ct = tags[i].ct; >> > > Thanks > Pan
On 03/09/2025 10:34, Yueyang Pan wrote: > On Wed, Sep 03, 2025 at 11:26:01AM +0200, Vlastimil Babka wrote: >> On 9/2/25 17:57, Yueyang Pan wrote: >>> This patch prints the status of the memory allocation profiling >>> before __show_mem actually prints the detailed allocation info. >>> This way will let us know the `0B` we saw in allocation info is >>> because the profiling is disabled or the allocation is actually >>> 0B. >>> >>> Signed-off-by: Yueyang Pan <pyyjason@gmail.com> >>> --- >>> mm/show_mem.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/mm/show_mem.c b/mm/show_mem.c >>> index ecf20a93ea54..51892ce2efc4 100644 >>> --- a/mm/show_mem.c >>> +++ b/mm/show_mem.c >>> @@ -427,6 +427,8 @@ void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx) >>> >>> nr = alloc_tag_top_users(tags, ARRAY_SIZE(tags), false); >>> if (nr) { >>> + pr_notice("Memory alloction profiling is turned %s\n", >> >> There's a typo "alloction". > > Nice catch. Thanks! > >> >>> + mem_alloc_profiling_enabled() ? "on" : "off"); >>> pr_notice("Memory allocations:\n"); >> >> But I think the message would be more obvious if it said e.g.: >> >> "Memory allocations (profiling is currently [on/off]):" > > I can change it in the next version. I saw Andrew gave approval. In this case, shall > I send v3 or create a new patch? > Send a v3 as a change is needed in both patches. >> >>> for (i = 0; i < nr; i++) { >>> struct codetag *ct = tags[i].ct; >> > > Thanks > Pan
© 2016 - 2025 Red Hat, Inc.