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 - 2026 Red Hat, Inc.