why not add __GFP_HIGHMEM directly in alloc_migrate_target()?

From: Xishi Qiu
Date: Tue Jul 12 2016 - 09:33:20 EST


alloc_migrate_target() is called from migrate_pages(),
so the page is always from user space, so why not add
__GFP_HIGHMEM directly, instead of the following code.

if (PageHighMem(page)) // it always return false in x86_64
gfp_mask |= __GFP_HIGHMEM;


Another question, when we do migration, why should split THP
first?
e.g. 2M(512*4kb) should flush 512 times TLB, and 2M(2M*1) only need one.
I find flush TLB takes a lot of time, especially multithreaded app.

Thanks,
Xishi Qiu