linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Sourav Panda <souravpanda@google.com>
To: akpm@linux-foundation.org, linux-mm@kvack.org,
	 linux-kernel@vger.kernel.org
Cc: lsf-pc@lists.linux-foundation.org, songmuchun@bytedance.com,
	 osalvador@suse.de, mike.kravetz@oracle.com,
	mathieu.desnoyers@efficios.com,  willy@infradead.org,
	david@redhat.com, pasha.tatashin@soleen.com,
	 rientjes@google.com, weixugc@google.com, gthelen@google.com,
	 souravpanda@google.com, surenb@google.com
Subject: [LSF/MM/BPF TOPIC][RFC PATCH 0/2] Hugetlb Fungibility for page metadata savings and network performance
Date: Wed, 18 Mar 2026 23:41:24 +0000	[thread overview]
Message-ID: <20260318234126.3216529-1-souravpanda@google.com> (raw)

The purpose of this RFC is to supplement our discussion in LSF/MM-26.

This is sent as a proof of concept. It applies on top of v7.0-rc3.

In VM environments, the guest frequently utilizes 1GB HugeTLB pages to
reduce TLB misses and minimize page table walk overhead for
network-functions. This has the added benefit that it reduces redundant
struct page metadata overhead through Hugepage Vmemmap Optimization (HVO).

While this saves significant overhead memory, this memory is not available
for other purposes; such as the hosted VM-workload or pagecache.

The guest must balance two competing memory requirements:
HugeTLB Pool: 1GB pages reserved for high-performance NFV applications
and yielding page metadata savings.
Buddy Allocator: 4KB pages required for business logic, system services,
and page cache.

Current kernel limitations prevent fungibility of memory between these two
pools. As a starting point we propose a hugetlb-shrinker to provide one-way
fungibility wherein ~90% guest memory is allocated as 1G hugepages at boot
and then converted to buddy pages on demand.

Sourav Panda (2):
  mm: add hugepage shrinker for frozen memory
  mm/hugetlb: skip hugetlb shrinking for proactive reclaim

 include/linux/shrinker.h |   3 +
 mm/Kconfig               |   8 +++
 mm/hugetlb.c             | 131 +++++++++++++++++++++++++++++++++++++++
 mm/internal.h            |   2 +-
 mm/shrinker.c            |  12 ++--
 mm/vmscan.c              |   6 +-
 6 files changed, 154 insertions(+), 8 deletions(-)

-- 
2.53.0.959.g497ff81fa9-goog



             reply	other threads:[~2026-03-18 23:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-18 23:41 Sourav Panda [this message]
2026-03-18 23:41 ` [LSF/MM/BPF TOPIC][RFC PATCH 1/2] mm: add hugepage shrinker for frozen memory Sourav Panda
2026-03-18 23:41 ` [LSF/MM/BPF TOPIC][RFC PATCH 2/2] mm/hugetlb: skip hugetlb shrinking for proactive reclaim Sourav Panda

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=20260318234126.3216529-1-souravpanda@google.com \
    --to=souravpanda@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=gthelen@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lsf-pc@lists.linux-foundation.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mike.kravetz@oracle.com \
    --cc=osalvador@suse.de \
    --cc=pasha.tatashin@soleen.com \
    --cc=rientjes@google.com \
    --cc=songmuchun@bytedance.com \
    --cc=surenb@google.com \
    --cc=weixugc@google.com \
    --cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox