On 7/7/20 9:44 AM, js1304@xxxxxxxxx wrote: > From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> > > There are some similar functions for migration target allocation. Since > there is no fundamental difference, it's better to keep just one rather > than keeping all variants. This patch implements base migration target > allocation function. In the following patches, variants will be converted > to use this function. > > Changes should be mechanical but there are some differences. First, Some > callers' nodemask is assgined to NULL since NULL nodemask will be > considered as all available nodes, that is, &node_states[N_MEMORY]. > Second, for hugetlb page allocation, gfp_mask is ORed since a user could > provide a gfp_mask from now on. I think that's wrong. See how htlb_alloc_mask() determines between GFP_HIGHUSER_MOVABLE and GFP_HIGHUSER, but then you OR it with __GFP_MOVABLE so it's always GFP_HIGHUSER_MOVABLE. Yeah, gfp_mask for hugeltb become exposed in new_page_nodemask() after v4 3/11 patch, but that doesn't mean we can start modifying it :/