All of lore.kernel.org
 help / color / mirror / Atom feed
From: Meijing Zhao <zhaomeijing100@gmail.com>
To: Mike Rapoport <rppt@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Wandun Chen <chenwandun@lixiang.com>,
	Meijing Zhao <zhaomeijing@lixiang.com>
Subject: [PATCH 2/2] mm: memblock: show all region flags in debugfs
Date: Wed, 19 Aug 2026 15:54:22 +0800	[thread overview]
Message-ID: <20260819075422.2387980-3-zhaomeijing100@gmail.com> (raw)
In-Reply-To: <20260819075422.2387980-1-zhaomeijing100@gmail.com>

From: Meijing Zhao <zhaomeijing@lixiang.com>

Commit 493f349e38d0 ("memblock: Add flags and nid info in memblock
debugfs") made memblock_debug_show() stop after finding the first set
flag. A memblock region can carry multiple flags, so debugfs hides all
but the lowest set bit.

In particular, memory allocated for HugeTLB pages is reserved with both
MEMBLOCK_RSRV_KERN and MEMBLOCK_RSRV_HUGETLB, but debugfs only reports
RSV_KERN.

Print every set flag separated by '|'. A HugeTLB reservation is now
shown as:

  RSV_KERN|RSV_HUGETLB

instead of:

  RSV_KERN

Fixes: 493f349e38d0 ("memblock: Add flags and nid info in memblock debugfs")
Signed-off-by: Meijing Zhao <zhaomeijing@lixiang.com>
---
 mm/memblock.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/mm/memblock.c b/mm/memblock.c
index f2952d725c10..5d806fe92cd7 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -2896,6 +2896,7 @@ static int memblock_debug_show(struct seq_file *m, void *private)
 	int i, j, nid;
 	unsigned int count = ARRAY_SIZE(flagname);
 	phys_addr_t end;
+	bool first;
 
 	for (i = 0; i < type->cnt; i++) {
 		reg = &type->regions[i];
@@ -2909,14 +2910,18 @@ static int memblock_debug_show(struct seq_file *m, void *private)
 		else
 			seq_printf(m, "%4c ", 'x');
 		if (reg->flags) {
+			first = true;
 			for (j = 0; j < count; j++) {
-				if (reg->flags & (1U << j)) {
-					seq_printf(m, "%s\n", flagname[j]);
-					break;
-				}
+				if (!(reg->flags & (1U << j)))
+					continue;
+				if (!first)
+					seq_putc(m, '|');
+				seq_puts(m, flagname[j] ?: "UNKNOWN");
+				first = false;
 			}
-			if (j == count)
-				seq_printf(m, "%s\n", "UNKNOWN");
+			if (first)
+				seq_puts(m, "UNKNOWN");
+			seq_putc(m, '\n');
 		} else {
 			seq_printf(m, "%s\n", "NONE");
 		}
-- 
2.25.1



  parent reply	other threads:[~2026-08-19  7:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-19  7:54 [PATCH 0/2] mm: memblock: fix debugfs flag reporting Meijing Zhao
2026-08-19  7:54 ` [PATCH 1/2] mm: memblock: add missing HugeTLB flag name Meijing Zhao
2026-08-19  7:54 ` Meijing Zhao [this message]
2026-08-23 12:14   ` [PATCH 2/2] mm: memblock: show all region flags in debugfs kernel test robot

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=20260819075422.2387980-3-zhaomeijing100@gmail.com \
    --to=zhaomeijing100@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=chenwandun@lixiang.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rppt@kernel.org \
    --cc=zhaomeijing@lixiang.com \
    /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: link
Be 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.