Re: [PATCH v2 5/8] mm/internal: rename swap offset helpers to softleaf offset

From: Dev Jain

Date: Mon Sep 07 2026 - 01:38:45 EST




On 05/09/26 4:12 pm, Barry Song wrote:
> On Tue, Sep 1, 2026 at 1:44 PM Dev Jain <dev.jain@xxxxxxx> wrote:
>>
>> In preparation for adding a helper to set softleaf ptes in one go,
>> generalize the swap entry helpers shifting the swap offset by delta,
>> for softleaves.
>>
>> Note that the soft-dirty bit, exclusive bit and uffd bit preservation
>> will still work for non-swap softleaves, since a softleaf entry is
>> constructed out of a type and offset, and those bits are ahead of
>> the soft-dirty, exclusive and uffd bits.
>>
>> For example, for a migration entry, pte_swp_exclusive() will return
>> false, as the exclusivity is encoded in the type itself
>> (SOFTLEAF_MIGRATION_READ_EXCLUSIVE).
>
> I don't quite understand why you mention this. Is anyone calling
> `pte_swp_exclusive()` on a migration entry? Shouldn't it only be called
> when `softleaf_is_swap()` is true?

You are right. I just wanted to emphasize the second paragraph - that the
pte_move_swp_offset will also work for softleaf entries. But I think
the third para confuses more, I'll drop it.

>
>>
>> Signed-off-by: Dev Jain <dev.jain@xxxxxxx>
>
> Reviewed-by: Barry Song <baohua@xxxxxxxxxx>

Thanks.


>
>> ---
>> mm/internal.h | 29 +++++++++++++++--------------
>> mm/memory.c | 4 ++--
>> 2 files changed, 17 insertions(+), 16 deletions(-)
>>
> [...]
>>
>> /**
>> @@ -523,7 +524,7 @@ static inline pte_t pte_next_swp_offset(pte_t pte)
>> */
>> static inline int swap_pte_batch(pte_t *start_ptep, int max_nr, pte_t pte)
>> {
>
> We might find a user for this in the future, in which case we might
> want to rename `swap_pte_batch()` to `swap_softleaf_batch()`?

That is what is being done here:
https://lore.kernel.org/all/20260813-migrate-rmap-batch-v2-1-3c5424c555c7@xxxxxxx/

I don't have a strong opinion, I can also generalize this right now.


>
>> - pte_t expected_pte = pte_next_swp_offset(pte);
>> + pte_t expected_pte = pte_next_softleaf_offset(pte);
>
> Best Regards
> Barry