Re: [PATCH 0/3] mm: support splitting mappingless swapcache folios

Zi Yan <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.mm
Message-ID <[email protected]>
On 5 Aug 2026, at 7:18, Shivam Kalra via B4 Relay wrote:

> Large shmem folios lose their address-space mapping when they are written
> to swap, but remain valid members of the swap cache. Folios read from swap
> but not yet associated with an anon_vma can have the same mappingless
> swapcache state. folio_check_splittable() currently mistakes both cases for
> truncation and rejects the split with -EBUSY.
>
> Implement the longstanding TODO for this state. Allow mappingless
> swapcache folios to use the existing uniform order-0 swapcache split path,
> while continuing to reject truly truncated folios and unsupported
> higher-order or non-uniform swapcache splits.

Thank you for your patches.

As Kairui (cc’d) mentioned in [1] (see “A bit more details on this”),
we might not need to implement this split. I will let Kairui to decide
how we should deal with this patchset.

[1] https://lore.kernel.org/all/CAMgjq7CHDG8JhesSPMkn1kzG8jKb0BXO756BvxMQC_MCn2eTyA@mail.gmail.com/
>
> memory_failure() is one caller affected by the restriction: it cannot
> isolate a poisoned base page within a mappingless swapcache THP. The
> end-to-end test uses this case to exercise the complete shmem pageout,
> swapcache split, and swapin path.
>
> The first patch contains the MM implementation. The second adds focused
> KUnit coverage for the split eligibility checks. The third adds the
> end-to-end hwpoison selftest, which pages out a shmem THP, poisons a tail
> page, and verifies both isolation and the data read back from swap.
>
> Tests:
>   - The split_hwpoison_swapcache kselftest passes under x86_64 QEMU
>       using virtme-ng 1.41 (2 GiB RAM, 4 KiB pages).
>
> Signed-off-by: Shivam Kalra <[email protected]>
> ---
> Shivam Kalra (3):
>       mm/huge_memory: allow splitting mappingless swapcache folios
>       mm: add KUnit coverage for mappingless swapcache folios
>       selftests/mm: test hwpoison recovery of mappingless swapcache THPs
>
>  mm/Kconfig                                         |  14 ++
>  mm/Makefile                                        |   1 +
>  mm/huge_memory.c                                   |  18 +-
>  mm/tests/folio_split_kunit.c                       |  52 ++++
>  tools/testing/selftests/mm/Makefile                |   2 +
>  tools/testing/selftests/mm/run_vmtests.sh          |   1 +
>  .../selftests/mm/split_hwpoison_swapcache.sh       |  57 +++++
>  .../selftests/mm/split_hwpoison_swapcache_test.c   | 261 +++++++++++++++++++++
>  8 files changed, 395 insertions(+), 11 deletions(-)
> ---
> base-commit: 0b53bff4fa05ff0d3ffbd3d3bb10fae69dfab498
> change-id: 20260722-b4-mappingless-swapcache-9badf123138a
>
> Best regards,
> --
> Shivam Kalra <[email protected]>


Best Regards,
Yan, Zi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.