All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nico Pache <nico.pache@linux.dev>
To: Barry Song <baohua@kernel.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@kernel.org>, Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	"Liam R. Howlett" <liam@infradead.org>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	Lance Yang <lance.yang@linux.dev>,
	Usama Arif <usama.arif@linux.dev>,
	Kiryl Shutsemau <kas@kernel.org>, Yu Zhao <yuzhao@google.com>,
	Xu Xin <xu.xin@linux.dev>,
	Chengming Zhou <chengming.zhou@linux.dev>,
	Matthew Brost <matthew.brost@intel.com>,
	Joshua Hahn <joshua.hahnjy@gmail.com>,
	Byungchul Park <byungchul@sk.com>,
	Gregory Price <gourry@gourry.net>,
	Ying Huang <ying.huang@linux.alibaba.com>,
	Alistair Popple <apopple@nvidia.com>,
	Usama Arif <usamaarif642@gmail.com>,
	aarcange@redhat.com
Subject: Re: [PATCH v2 1/2] mm/huge_memory.c: skip zero-page remapping when underused THP shrinker is disabled
Date: Mon, 26 Oct 2026 14:02:19 -0600	[thread overview]
Message-ID: <dee39669-b726-480e-8ca6-10f19512da68@linux.dev> (raw)
In-Reply-To: <CAGsJ_4wp_jCtCeMx39nW0Z1Jm5pja7_V6XNwLB6p7zTan0c3VA@mail.gmail.com>



On 10/25/26 10:52 PM, Barry Song wrote:
> On Mon, Oct 26, 2026 at 5:48 AM Nico Pache <nico.pache@linux.dev> wrote:
>>
>>
>>
>> On 10/25/26 2:28 PM, Barry Song wrote:
>>> On Mon, Oct 26, 2026 at 1:40 AM Nico Pache (Red Hat)
>>> <nico.pache@linux.dev> wrote:
>>>>
>>>> The zero-page remapping in __folio_split() was added to support the
>>>> underused THP shrinker. When the shrinker is disabled via
>>>> shrink_underused, gate TTU_USE_SHARED_ZEROPAGE on split_underused_thp
>>>> to avoid scanning subpages for zero content unnecessarily.
>>>>
>>>> Suggested-by: David Hildenbrand <david@kernel.org>
>>>> Fixes: b1f202060afe ("mm: remap unused subpages to shared zeropage when splitting isolated thp")
>>>> Signed-off-by: Nico Pache <nico.pache@linux.dev>
>>>
>>> is b1f202060afe a correct fixes tag? as
>>> commit b1f202060afe has no even "split_underused_thp" there.
>>
>> I believe so. IIUC these two series were merged together. While
>> 81d3ff3c6f7 introduces the toggle, b1f202060afe is where the behavior
>> started.
>>
>> I guess you could argue that the Fixes should include both?
>>
>> Not entirely sure!
> 
> Thanks for the clarification. I guess it's fine.
> 
> BTW, with the code below, we no longer add fully mapped
> folios to deferred_split_folio. So the scanning code only
> handles partially mapped folios to set up zero-page mappings
> for their subpages.
> 
> I'm still not quite sure whether this is really harmful, though.
> Am I missing something, or was there some discussion I missed?

The issue is not in the actual shrinker code or the deferred split list.

The issue is that any split leads to this zero-page remapping 
indiscriminate of the actual toggle. The same way this toggle is gating 
things going on the deferred split list, we should be gating the actual 
zero-page remapping too.

There were two pieces to the underutilized shrinker, first we check if a 
THP is underutilized, if so we split, and the split+remapping handles 
the freeing of that memory. However, functionally this also made ANY 
split do this zero page remapping, not just those coming from the shrinker.

-- Nico

> 
> void deferred_split_folio(struct folio *folio, bool partially_mapped)
> {
>          ...
>          /*
>           * Order 1 folios have no space for a deferred list, but we also
>           * won't waste much memory by not adding them to the deferred list.
>           */
>          if (folio_order(folio) <= 1)
>                  return;
> 
>          if (!partially_mapped && !split_underused_thp)
>                  return;
> }



  reply	other threads:[~2026-10-26 20:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-25 17:39 [PATCH v2 0/2] MM: Tighten control over zero-page remapping Nico Pache (Red Hat)
2026-10-25 17:39 ` [PATCH v2 1/2] mm/huge_memory.c: skip zero-page remapping when underused THP shrinker is disabled Nico Pache (Red Hat)
2026-10-25 20:28   ` Barry Song
2026-10-25 21:48     ` Nico Pache
2026-10-26  4:52       ` Barry Song
2026-10-26 20:02         ` Nico Pache [this message]
2026-10-26 20:58           ` Barry Song
2026-10-26 21:33             ` Nico Pache
2026-10-26 17:41   ` sashiko-bot
2026-10-25 17:39 ` [PATCH v2 2/2] mm/ksm: prevent zero-page remapping during ksmd-triggered THP splits Nico Pache (Red Hat)

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=dee39669-b726-480e-8ca6-10f19512da68@linux.dev \
    --to=nico.pache@linux.dev \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=byungchul@sk.com \
    --cc=chengming.zhou@linux.dev \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=gourry@gourry.net \
    --cc=joshua.hahnjy@gmail.com \
    --cc=kas@kernel.org \
    --cc=lance.yang@linux.dev \
    --cc=liam@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matthew.brost@intel.com \
    --cc=ryan.roberts@arm.com \
    --cc=usama.arif@linux.dev \
    --cc=usamaarif642@gmail.com \
    --cc=xu.xin@linux.dev \
    --cc=ying.huang@linux.alibaba.com \
    --cc=yuzhao@google.com \
    --cc=ziy@nvidia.com \
    /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.