Re: [PATCH 0/3] mm: support splitting mappingless swapcache folios
From: Zi Yan
Date: Sat Aug 08 2026 - 13:04:14 EST
On Fri Aug 7, 2026 at 5:22 PM EDT, Kairui Song wrote:
> On Fri, Aug 07, 2026 at 10:18:05AM +0800, Zi Yan wrote:
>> On Wed Aug 5, 2026 at 11:54 AM EDT, Kairui Song wrote:
>> > On Wed, Aug 05, 2026 at 08:03:33AM +0800, Zi Yan wrote:
>> >> 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@xxxxxxxxxxxxxx/
>> >
>> > Thanks for the CC, this is actually not hard to implement as shown by
>> > Shivam, I just found the code more and more hard to follow and fragile
>> > as we add more logic to it. And we don't have to reject higher order
>> > split either which can be seen easily if the code is cleaner.
>> >
>> > Personally I think doing some cleanup first is better, I haven't post any
>> > code as right now there doesn't seem to be much user of this. It will be
>> > needed if more clean THP swapcache begin to show up due to things like
>> > THP readahead for swap, which isn't here yet. I think I can send an RFC
>> > tomorrow just for reference. I'm fine if we prefer to remove that TODO
>> > using this smaller change first :)
>>
>> Thanks. Can you also help review this patchset? The changes looks good
>> to me but I am not sure if I get all the details about swapcache handling.
>>
>> --
>> Best Regards,
>> Yan, Zi
>
> Hello,
>
> Thanks for the reminder, I got a bit busy so delayed for a day on that
> RFC.
>
> For this series I think it's functionally fine, just the split logic is
> a bit complex to follow and we still have restriction on swap cache
> for order 0 uniform split only. I'll have a closer look later. Also
I agree. I wonder if it is possible that a shmem in swapcache could
enter non uniform split, folio_split(). With Patch 1,
folio_check_splittable() will return -EINVAL, causing a WARN.
Hi Shivam,
Can you check the above issue? If it is possible, we want to avoid it.
> let me know how you think about that RFC.
Sure, will take a look.
--
Best Regards,
Yan, Zi