Hi Eugen, On Wed, Nov 19, 2025 at 05:44:21PM +0200, Eugen Hristev wrote: > Annotate vital static information into meminspect: > - mem_section > > Information on these variables is stored into inspection table. > > Register dynamic information into meminspect: > - section > - mem_section_usage > > This information is being allocated for each node, so call > memblock_mark_inspect to mark the block accordingly. > > Signed-off-by: Eugen Hristev <[email protected]> > --- > mm/sparse.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/mm/sparse.c b/mm/sparse.c > index 17c50a6415c2..80530e39c8b2 100644 > --- a/mm/sparse.c > +++ b/mm/sparse.c > @@ -15,6 +15,7 @@ > #include <linux/swapops.h> > #include <linux/bootmem_info.h> > #include <linux/vmstat.h> > +#include <linux/meminspect.h> > #include "internal.h" > #include <asm/dma.h> > > @@ -30,6 +31,7 @@ struct mem_section > mem_section[NR_SECTION_ROOTS][SECTIONS_PER_ROOT] > ____cacheline_internodealigned_in_smp; > #endif > EXPORT_SYMBOL(mem_section); > +MEMINSPECT_SIMPLE_ENTRY(mem_section); > > #ifdef NODE_NOT_IN_PAGE_FLAGS > /* > @@ -253,6 +255,7 @@ static void __init memblocks_present(void) > size = sizeof(struct mem_section *) * NR_SECTION_ROOTS; > align = 1 << (INTERNODE_CACHE_SHIFT); > mem_section = memblock_alloc_or_panic(size, align); > + memblock_mark_inspect(virt_to_phys(mem_section), size);
Why not meminspect_register_va()? > } > #endif > > @@ -343,6 +346,7 @@ sparse_early_usemaps_alloc_pgdat_section(struct > pglist_data *pgdat, > limit = MEMBLOCK_ALLOC_ACCESSIBLE; > goto again; > } > + memblock_mark_inspect(virt_to_phys(usage), size); > return usage; > } > > -- > 2.43.0 > -- Sincerely yours, Mike.
