The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH 0/2] mm: memblock: fix debugfs flag reporting
@ 2026-08-19  7:54 Meijing Zhao
  2026-08-19  7:54 ` [PATCH 1/2] mm: memblock: add missing HugeTLB flag name Meijing Zhao
  2026-08-19  7:54 ` [PATCH 2/2] mm: memblock: show all region flags in debugfs Meijing Zhao
  0 siblings, 2 replies; 4+ messages in thread
From: Meijing Zhao @ 2026-08-19  7:54 UTC (permalink / raw)
  To: Mike Rapoport, Andrew Morton
  Cc: linux-mm, linux-kernel, Wandun Chen, Meijing Zhao

From: Meijing Zhao <zhaomeijing@lixiang.com>

The memblock debugfs interface has two issues when reporting region
flags. MEMBLOCK_RSRV_HUGETLB has no corresponding name, and regions
with multiple flags only show the lowest set bit.

Add the missing HugeTLB flag name and make memblock_debug_show() print
all flags. With the series applied, a HugeTLB bootmem reservation is
reported as:

  RSV_KERN|RSV_HUGETLB

Meijing Zhao (2):
  mm: memblock: add missing HugeTLB flag name
  mm: memblock: show all region flags in debugfs

 mm/memblock.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

-- 
2.25.1

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

* [PATCH 1/2] mm: memblock: add missing HugeTLB flag name
  2026-08-19  7:54 [PATCH 0/2] mm: memblock: fix debugfs flag reporting Meijing Zhao
@ 2026-08-19  7:54 ` Meijing Zhao
  2026-08-19  7:54 ` [PATCH 2/2] mm: memblock: show all region flags in debugfs Meijing Zhao
  1 sibling, 0 replies; 4+ messages in thread
From: Meijing Zhao @ 2026-08-19  7:54 UTC (permalink / raw)
  To: Mike Rapoport, Andrew Morton
  Cc: linux-mm, linux-kernel, Wandun Chen, Meijing Zhao

From: Meijing Zhao <zhaomeijing@lixiang.com>

Commit 7d163a75f821 ("memblock: make HugeTLB bootmem allocation work
with KHO") added MEMBLOCK_RSRV_HUGETLB but did not add the corresponding
entry to flagname[]. As a result, memblock debugfs cannot report the
flag by name.

Add the missing RSV_HUGETLB entry.

Fixes: 7d163a75f821 ("memblock: make HugeTLB bootmem allocation work with KHO")
Signed-off-by: Meijing Zhao <zhaomeijing@lixiang.com>
---
 mm/memblock.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mm/memblock.c b/mm/memblock.c
index 9ce86349a29f..f2952d725c10 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -2886,6 +2886,7 @@ static const char * const flagname[] = {
 	[ilog2(MEMBLOCK_RSRV_NOINIT)] = "RSV_NIT",
 	[ilog2(MEMBLOCK_RSRV_KERN)] = "RSV_KERN",
 	[ilog2(MEMBLOCK_KHO_SCRATCH)] = "KHO_SCRATCH",
+	[ilog2(MEMBLOCK_RSRV_HUGETLB)] = "RSV_HUGETLB",
 };
 
 static int memblock_debug_show(struct seq_file *m, void *private)
-- 
2.25.1


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

* [PATCH 2/2] mm: memblock: show all region flags in debugfs
  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
  2026-08-23 12:14   ` kernel test robot
  1 sibling, 1 reply; 4+ messages in thread
From: Meijing Zhao @ 2026-08-19  7:54 UTC (permalink / raw)
  To: Mike Rapoport, Andrew Morton
  Cc: linux-mm, linux-kernel, Wandun Chen, Meijing Zhao

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


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

* Re: [PATCH 2/2] mm: memblock: show all region flags in debugfs
  2026-08-19  7:54 ` [PATCH 2/2] mm: memblock: show all region flags in debugfs Meijing Zhao
@ 2026-08-23 12:14   ` kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-08-23 12:14 UTC (permalink / raw)
  To: Meijing Zhao, Mike Rapoport, Andrew Morton
  Cc: oe-kbuild-all, Linux Memory Management List, linux-kernel,
	Wandun Chen, Meijing Zhao

Hi Meijing,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]

url:    https://github.com/intel-lab-lkp/linux/commits/Meijing-Zhao/mm-memblock-add-missing-HugeTLB-flag-name/20260819-155421
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/20260819075422.2387980-3-zhaomeijing100%40gmail.com
patch subject: [PATCH 2/2] mm: memblock: show all region flags in debugfs
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20260823/202608230255.AL6UNOZq-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260823/202608230255.AL6UNOZq-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608230255.AL6UNOZq-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:25,
                    from mm/memblock.c:9:
>> mm/memblock.c:2805:16: error: 'MEMBLOCK_RSRV_HUGETLB' undeclared here (not in a function); did you mean 'MEMBLOCK_RSRV_KERN'?
    2805 |         [ilog2(MEMBLOCK_RSRV_HUGETLB)] = "RSV_HUGETLB",
         |                ^~~~~~~~~~~~~~~~~~~~~
   include/linux/log2.h:158:30: note: in definition of macro 'ilog2'
     158 |         __builtin_constant_p(n) ?       \
         |                              ^
>> include/linux/log2.h:157:1: error: array index in initializer not of integer type
     157 | ( \
         | ^
   mm/memblock.c:2805:10: note: in expansion of macro 'ilog2'
    2805 |         [ilog2(MEMBLOCK_RSRV_HUGETLB)] = "RSV_HUGETLB",
         |          ^~~~~
   include/linux/log2.h:157:1: note: (near initialization for 'flagname')
   mm/memblock.c:2805:10: note: in expansion of macro 'ilog2'
    2805 |         [ilog2(MEMBLOCK_RSRV_HUGETLB)] = "RSV_HUGETLB",
         |          ^~~~~


vim +2805 mm/memblock.c

  2794	
  2795	#ifdef CONFIG_DEBUG_FS
  2796	#ifdef CONFIG_ARCH_KEEP_MEMBLOCK
  2797	static const char * const flagname[] = {
  2798		[ilog2(MEMBLOCK_HOTPLUG)] = "HOTPLUG",
  2799		[ilog2(MEMBLOCK_MIRROR)] = "MIRROR",
  2800		[ilog2(MEMBLOCK_NOMAP)] = "NOMAP",
  2801		[ilog2(MEMBLOCK_DRIVER_MANAGED)] = "DRV_MNG",
  2802		[ilog2(MEMBLOCK_RSRV_NOINIT)] = "RSV_NIT",
  2803		[ilog2(MEMBLOCK_RSRV_KERN)] = "RSV_KERN",
  2804		[ilog2(MEMBLOCK_KHO_SCRATCH)] = "KHO_SCRATCH",
> 2805		[ilog2(MEMBLOCK_RSRV_HUGETLB)] = "RSV_HUGETLB",
  2806	};
  2807	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

end of thread, other threads:[~2026-08-23 12:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH 2/2] mm: memblock: show all region flags in debugfs Meijing Zhao
2026-08-23 12:14   ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox