On Tue, Jun 11, 2024 at 6:30 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, 5 Jun 2024 22:27:51 +0000 Sourav Panda <souravpanda@xxxxxxxxxx> wrote: > > > Today, we do not have any observability of per-page metadata > > and how much it takes away from the machine capacity. Thus, > > we want to describe the amount of memory that is going towards > > per-page metadata, which can vary depending on build > > configuration, machine architecture, and system use. > > > > This patch adds 2 fields to /proc/vmstat that can used as shown > > below: > > > > Accounting per-page metadata allocated by boot-allocator: > > /proc/vmstat:nr_memmap_boot * PAGE_SIZE > > > > Accounting per-page metadata allocated by buddy-allocator: > > /proc/vmstat:nr_memmap * PAGE_SIZE > > > > Accounting total Perpage metadata allocated on the machine: > > (/proc/vmstat:nr_memmap_boot + > > /proc/vmstat:nr_memmap) * PAGE_SIZE > > Under what circumstances do these change? Only hotplug? Currently, there are several reasons these numbers can change during runtime: 1. Memory hotplug/hotremove 2. Adding/Removing hugetlb pages with vmemmap optimization 3. Adding/Removing Device DAX with vmemmap optimization. > > It's nasty, but would it be sufficient to simply emit these numbers > into dmesg when they change? These numbers should really be part of /proc/vmstat in order to provide an interface for determining the system memory overhead. Pasha