Re: [PATCH v3 1/8] mm: Remove special swap entry functions

From: Alistair Popple
Date: Tue Mar 02 2021 - 02:45:04 EST


On Tuesday, 2 March 2021 4:46:42 AM AEDT Jason Gunthorpe wrote:
>
> I wish you could come up with a more descriptive word that special
> here
>
> What I understand is this is true when the swap_offset is a pfn?

Correct, and that points to a better name. Maybe is_pfn_swap_entry()? In which
case adding a helper as Christoph suggested makes some more sense. Eg:
pfn_swap_entry_to_page()

> > -static inline struct page *migration_entry_to_page(swp_entry_t entry)
> > -{
> > - struct page *p = pfn_to_page(swp_offset(entry));
> > - /*
> > - * Any use of migration entries may only occur while the
> > - * corresponding page is locked
> > - */
> > - BUG_ON(!PageLocked(compound_head(p)));
> > - return p;
>
> And this constraint has been completely lost?

Yes, sorry I should have called that out. I didn't think loosing the check was
a big deal, but I can add some checks to some of the call sites which would
catch a page being incorrectly unlocked.

> A comment in front of the is_special_entry explaining all the rule
> would help alot

Will add one.

> Transformation looks fine otherwise

Thanks.

- Alistair

> Jason
>