On Tue 23-06-20 15:13:44, Joonsoo Kim wrote: > From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> > > new_non_cma_page() in gup.c which try to allocate migration target page > requires to allocate the new page that is not on the CMA area. > new_non_cma_page() implements it by removing __GFP_MOVABLE flag. This way > works well for THP page or normal page but not for hugetlb page. Could you explain why? I mean why cannot you simply remove __GFP_MOVABLE flag when calling alloc_huge_page_nodemask and check for it in dequeue path? Your current calling convention doesn't allow that but as I've said in the reply to previous patch this should be changed and then it would make this one easier as well unless I am missing something. -- Michal Hocko SUSE Labs