Skip to contentSkip to conversation

why not add __GFP_HIGHMEM directly in alloc_migrate_target()?

DISCUSSION Xishi Qiu 1 participant 1 message Jul 12, 2016 Memory management

lore
Share & tools
lore

Xishi Qiu

author
#0 lore raw

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