Hi Marek, On 03/05/2013 02:57 PM, Marek Szyprowski wrote: > @@ -2495,7 +2498,7 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo > */ > static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, > unsigned long address, pte_t *page_table, pmd_t *pmd, > - spinlock_t *ptl, pte_t orig_pte) > + spinlock_t *ptl, pte_t orig_pte, unsigned int flags) > __releases(ptl) > { > struct page *old_page, *new_page = NULL; > @@ -2505,6 +2508,10 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, > struct page *dirty_page = NULL; > unsigned long mmun_start = 0; /* For mmu_notifiers */ > unsigned long mmun_end = 0; /* For mmu_notifiers */ > + gfp_t gfp = GFP_HIGHUSER_MOVABLE; > + > + if (IS_ENABLED(CONFIG_CMA) && (flags & FAULT_FLAG_NO_CMA)) > + gfp &= ~__GFP_MOVABLE; Here just simply strip the __GFP_MOVABLE flag, IIUC it will break the page migrate policy. Because " But GFP_MOVABLE is not only a zone specifier but also an allocation policy.". Another problem is that you add a new flag to instruct the page allocation, do we have to also handle the hugepage or THP as Mel ever mentioned? thanks, linfeng -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>