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 >