From: Dev Jain <dev.jain@arm.com>
To: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org,
muchun.song@linux.dev, osalvador@suse.de
Cc: Dev Jain <dev.jain@arm.com>,
riel@surriel.com, liam@infradead.org, vbabka@kernel.org,
harry@kernel.org, jannh@google.com, lance.yang@linux.dev,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
ryan.roberts@arm.com, anshuman.khandual@arm.com
Subject: [PATCH v4 0/5] mm/rmap: Refactor try_to_unmap_one
Date: Thu, 30 Jul 2026 09:45:51 +0000 [thread overview]
Message-ID: <20260730094559.418003-1-dev.jain@arm.com> (raw)
In preparation for batching anonymous large folio unmapping to optimize it,
refactor try_to_unmap_one. This series refactors hugetlb, anon-lazyfree
and anon-swapbacked logic into their own functions, significantly
reducing the length of the huge try_to_unmap_one.
---
Based on mm-unstable (d8c677ce1220b0db119ada6c6f9762c07c4d8aca).
Split out from
https://lore.kernel.org/all/20260526063635.61721-1-dev.jain@arm.com/
mm-selftests pass on arm64, built on arm64 and x86.
v3->v4:
- Tighten comment around TTU_HWPOISON
- try_to_unmap_hugetlb_one -> try_to_unmap_poisoned_hugetlb_one
- VM_WARN_ON -> VM_WARN_ON_ONCE
v2->v3:
- Patch 2: fix comment to say that TTU_HWPOISON can be true for small
folios only in try_to_unmap_one, since hugetlb bits are now refactored
away
- Patch 5: Directly do if (WARN_ON_ONCE())
- Rebase on latest mm-unstable to resolve conflicts with 30c83145c5b3
("mm: rename uffd-wp PTE accessors to uffd")
v1->v2:
- constify ttu flags in try_to_unmap_hugetlb_one, move const variables up
- Assert address passed to try_to_unmap_hugetlb_one equals pvmw.address
- Patch 3: code and comment polishing, do the stat update in the function
- Remove unnecessary inline hints, remove set_swp_pte_at, instead have
swp_pte_prepare + set_ptes. Rename subpage -> page. constify
anon_exclusive.
- Do pte restoration in caller
Dev Jain (5):
mm/rmap: convert page -> folio for hwpoison checks
mm/rmap: Add try_to_unmap_poisoned_hugetlb_one
mm/rmap: refactor some code around lazyfree folio unmapping
mm/rmap: refactor anon folio unmap in try_to_unmap_one
mm/rmap: add anon folio unmap dispatcher
include/linux/hugetlb.h | 1 +
mm/rmap.c | 415 ++++++++++++++++++++++------------------
2 files changed, 232 insertions(+), 184 deletions(-)
--
2.43.0
next reply other threads:[~2026-07-30 9:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 9:45 Dev Jain [this message]
2026-07-30 9:45 ` [PATCH v4 1/5] mm/rmap: convert page -> folio for hwpoison checks Dev Jain
2026-07-30 9:45 ` [PATCH v4 2/5] mm/rmap: Add try_to_unmap_poisoned_hugetlb_one Dev Jain
2026-07-30 9:45 ` [PATCH v4 3/5] mm/rmap: refactor some code around lazyfree folio unmapping Dev Jain
2026-07-30 9:45 ` [PATCH v4 4/5] mm/rmap: refactor anon folio unmap in try_to_unmap_one Dev Jain
2026-07-30 9:45 ` [PATCH v4 5/5] mm/rmap: add anon folio unmap dispatcher Dev Jain
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=20260730094559.418003-1-dev.jain@arm.com \
--to=dev.jain@arm.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=david@kernel.org \
--cc=harry@kernel.org \
--cc=jannh@google.com \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=riel@surriel.com \
--cc=ryan.roberts@arm.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.