On 2020-01-16 at 23:18 Michal Hocko wrote: >On Thu 16-01-20 21:50:34, Li Xinhai wrote: >> On 2020-01-16 at 17:56 Michal Hocko wrote: >> >On Thu 16-01-20 04:11:25, Li Xinhai wrote: >> >> Checking hstate at early phase when isolating page, instead of during >> >> unmap and move phase, to avoid useless isolation. >> > >> >Could you be more specific what you mean by isolation and why does it >> >matter? The patch description should really explain _why_ the change is >> >needed or desirable. >> >> The changelog can be improved: >> >> vma_migratable() is called to check if pages in vma can be migrated >> before go ahead to isolate, unmap and move pages. For hugetlb pages, >> hugepage_migration_supported(struct hstate *h) is one factor which >> decide if migration is supported. In current code, this function is called >> from unmap_and_move_huge_page(), after isolating page has >> completed. >> This patch checks hstate from vma_migratable() and avoids isolating pages >> which are not supported. > >This still explains what but not why this is relevant. If by isolating >pages you mean isolate_lru_page then this really a noop for hugetlb >pages. Or do I still misread your changelog? I mean isolate_huge_page will queue pages for moving, and unmap_and_move_huge_page will call hugepage_migration_supported then refuse moving. >-- >Michal Hocko >SUSE Labs