Re: [PATCH 02/16] mm: introduce leaf entry type and use to simplify leaf entry logic

From: Lorenzo Stoakes

Date: Wed Nov 05 2025 - 16:09:35 EST


On Wed, Nov 05, 2025 at 09:11:45PM +0100, David Hildenbrand (Red Hat) wrote:
> On 05.11.25 21:05, Lorenzo Stoakes wrote:
> > On Wed, Nov 05, 2025 at 03:01:00PM -0500, Gregory Price wrote:
> > > On Wed, Nov 05, 2025 at 07:52:36PM +0000, Lorenzo Stoakes wrote:
> > > > On Wed, Nov 05, 2025 at 02:25:34PM -0500, Gregory Price wrote:
> > > > > On Wed, Nov 05, 2025 at 07:06:11PM +0000, Matthew Wilcox wrote:
> > > > I thought about doing this but it doesn't really work as the type is
> > > > _abstracted_ from the architecture-specific value, _and_ we use what is
> > > > currently the swp_type field to identify what this is.
> > > >
> > > > So we would lose the architecture-specific information that any 'hardware leaf'
> > > > entry would require and not be able to reliably identify it without losing bits.
> > > >
> > > > Trying to preserve the value _and_ correctly identify it as a present entry
> > > > would be difficult.
> > > >
> > > > And I _really_ didn't want to go on a deep dive through all the architectures to
> > > > see if we could encode it differently to allow for this.
> > > >
> > > > Rather I think it's better to differentiate between s/w + h/w leaf entries.
> > > >
> > >
> > > Reasonable - names are hard, but just about anything will be better than swp_entry.
> > >
> > > SWE / sw_entry seems perfectly reasonable.
> >
> > I'm not a lover of 'sw' in there it's just... eye-stabby. Is that a word?
> >
> > I am quite fond of my suggested soft_leaf_t, softleaf_xxx()
>
> We do have soft_dirty.
>
> It will get interesting with pte_swp_soft_dirty() :)

Hmm but that's literally a swap entry, and is used against an actual PTE entry
not an abstracted s/w leaf entry so I doubt that'd require renaming on any
level.

>
> ptw_softlead_soft_dirty() Well, at least I would understand it.

Yeah the naming would never be pte_softleaf_soft_dirty() anyway.

If it was to exist in softleaf terms it'd be softleaf_is_soft_dirty() which
would be a lot clearer.

The PTE-specific functions implemented in leafops.h are prefixed pte_xxx()
simply :)

(Other than e.g. softleaf_from_pte() or softleaf_from_pmd()).

I think you could find issues with any name, I maintain softleaf is a good
compromise while remaining readable. :)

Cheers, Lorenzo