From: Muchun Song <songmuchun@bytedance.com>
To: Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@kernel.org>,
linux-mm@kvack.org
Cc: Lorenzo Stoakes <ljs@kernel.org>,
"Liam R. Howlett" <liam@infradead.org>,
Vlastimil Babka <vbabka@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Suren Baghdasaryan <surenb@google.com>,
Michal Hocko <mhocko@suse.com>,
linux-kernel@vger.kernel.org,
Muchun Song <songmuchun@bytedance.com>,
muchun.song@linux.dev
Subject: [PATCH v2] mm/sparse: keep mem_section_usage_size() internal
Date: Wed, 5 Aug 2026 10:25:36 +0800 [thread overview]
Message-ID: <20260805022536.1206575-1-songmuchun@bytedance.com> (raw)
mem_section_usage_size() is only needed by sparsemem implementation code
after commit ae751d567baa ("mm/bootmem_info: stop marking mem_section_usage
as MIX_SECTION_INFO"), so keeping the declaration in mmzone.h now exposes
the helper to all mmzone.h users for no reason.
Move the helper to sparse.h so sparse.c and sparse-vmemmap.c can share it
through the internal header. While doing so, calculate the allocation size
with struct_size_t(), which ties the expression to the pageblock_flags
trailing array instead of open-coding the struct header plus bitmap size.
Signed-off-by: Muchun Song <songmuchun@bytedance.com>
---
v2:
- Mention that ae751d567baa removed the last external user (David)
- Use struct_size_t() for the mem_section_usage size calculation (David)
---
include/linux/mmzone.h | 1 -
mm/sparse.c | 10 ----------
mm/sparse.h | 6 ++++++
3 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index a26c8b855222..86891163e0ef 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -2070,7 +2070,6 @@ static inline struct mem_section *__nr_to_section(unsigned long nr)
#endif
return &mem_section[root][nr & SECTION_ROOT_MASK];
}
-extern size_t mem_section_usage_size(void);
/*
* We use the lower bits of the mem_map pointer to store a little bit of
diff --git a/mm/sparse.c b/mm/sparse.c
index 704a9dec2b9a..46458e5300e2 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -213,16 +213,6 @@ static void __init memblocks_present(void)
memory_present(nid, start, end);
}
-static unsigned long usemap_size(void)
-{
- return BITS_TO_LONGS(SECTION_BLOCKFLAGS_BITS) * sizeof(unsigned long);
-}
-
-size_t mem_section_usage_size(void)
-{
- return sizeof(struct mem_section_usage) + usemap_size();
-}
-
#ifdef CONFIG_SPARSEMEM_VMEMMAP
unsigned long __init section_map_size(void)
{
diff --git a/mm/sparse.h b/mm/sparse.h
index 95aa031213f2..3b744667a7e6 100644
--- a/mm/sparse.h
+++ b/mm/sparse.h
@@ -47,6 +47,12 @@ static inline void __section_mark_present(struct mem_section *ms,
ms->section_mem_map |= SECTION_MARKED_PRESENT;
}
+
+static inline size_t mem_section_usage_size(void)
+{
+ return struct_size_t(struct mem_section_usage, pageblock_flags,
+ BITS_TO_LONGS(SECTION_BLOCKFLAGS_BITS));
+}
#else
static inline void sparse_init(void) {}
#endif /* CONFIG_SPARSEMEM */
--
2.54.0
next reply other threads:[~2026-08-05 2:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-05 2:25 Muchun Song [this message]
2026-08-05 14:55 ` [PATCH v2] mm/sparse: keep mem_section_usage_size() internal Mike Rapoport
2026-08-05 14:57 ` David Hildenbrand (Arm)
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=20260805022536.1206575-1-songmuchun@bytedance.com \
--to=songmuchun@bytedance.com \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=muchun.song@linux.dev \
--cc=rppt@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
/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.