Thread (25 messages) 25 messages, 5 authors, 2026-01-28

Re: [v5 PATCH] arm64: mm: show direct mapping use in /proc/meminfo

From: Will Deacon <will@kernel.org>
Date: 2026-01-26 12:44:51
Also in: lkml

On Fri, Jan 23, 2026 at 12:08:07PM -0800, Yang Shi wrote:

On 1/22/26 6:40 PM, Anshuman Khandual wrote:
quoted
On 22/01/26 7:47 PM, Will Deacon wrote:
quoted
On Thu, Jan 22, 2026 at 10:39:25AM +0530, Anshuman Khandual wrote:
quoted
Hello Yang,

On 07/01/26 5:59 AM, Yang Shi wrote:
quoted
Since commit a166563e7ec3 ("arm64: mm: support large block mapping when
rodata=full"), the direct mapping may be split on some machines instead
keeping static since boot. It makes more sense to show the direct mapping
use in /proc/meminfo than before.
I guess the direct mapping here refers to linear map ? IIUC it is called
direct map on x86 and linear map on arm64 platforms. Then should not it
be renamed as s/DirectMap/LinearMap instead ? This will align with names
from ptdump as well.

Before the above mentioned commit, linear could get altered with memory
hotplug and remove events as well.
quoted
This patch will make /proc/meminfo show the direct mapping use like the
below (4K base page size):
DirectMap4K:	   94792 kB
DirectMap64K:	  134208 kB
DirectMap2M:	 1173504 kB
DirectMap32M:	 5636096 kB
DirectMap1G:	529530880 kB
If /proc/meminfo interface is getting updated via  arch_report_meminfo()
why not add stats for all kernel virtual address space ranges including
vmemmap, vmalloc etc aka all address range headers in ptdump as many of
those could change during system runtime. What makes linear mapping any
special ?
tbh, I think compatability with x86 is a good argument in this case and
so the naming and formatting proposed by this patch makes sense to me.
Fair enough. Probably adding a comment above arch_report_meminfo() along
with the commit message, explaining the above rationale would be helpful
for developers to understand/recollect this equivalence later on.
quoted
I'm also not sure that it's particularly interesting to see these
rolled-up numbers for the vmalloc area. You really want information
about the area, so extending /proc/vmallocinfo to give information
about the granule size for each entry might be useful but I don't think
it should be part of this patch.
Agreed - vmalloc has a separate file for its details which can be improved
later to accommodate rolled-up numbers. But what about vmemmap ? It always
gets updated along with linear map during memory hotplug and remove events.
Should that be included here ?
The granule size of vmemmap should be quite static IIUC. AFAIK kernel
doesn't modify vmemmap page tables except HVO, but arm64 doesn't support
HVO. And just 4K page size can have PMD mapped vmemmap. It doesn't use
contiguous mapping either. The smallest granularity of memory hotplug is
128M with 4K page size, so vmemmap for hotplugged memory should be PMD
mapped as well.

It might be worth showing the memory consumed by vmemmap for hotplug memory
so that the users can know where the memory is used. The vmemmap used for
bootmem is not counted in MemTotal of /proc/meminfo. But it sounds more core
mm generic and shouldn't be part of this patch IMHO.
Agreed, I don't understand what the granularity of the vmemmap has to do
with this.

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help