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