Hi, this is the new version of [1]. RFC -> v1: - Drop RFC - Addressed feedback from David and Mike - Fence off gigantic pages as there is a cyclic dependency between them and alloc_contig_range - Re-organize the code to make race-window smaller and to put all details in hugetlb code - Drop nodemask initialization. First a node will be tried and then we will back to other nodes containing memory (N_MEMORY). Details in patch#1's changelog - Count new page as surplus in case we failed to dissolve the old page and the new one. Details in patch#1. I already have a patch that uses the new alloc_and_dissolve() from hotplug code, but I decided to leave that patch out until this patchset is settled. [1] https://patchwork.kernel.org/project/linux-mm/list/?series=429833 Oscar Salvador (2): mm: Make alloc_contig_range handle free hugetlb pages mm: Make alloc_contig_range handle in-use hugetlb pages include/linux/hugetlb.h | 7 ++++ mm/compaction.c | 21 +++++++++++ mm/hugetlb.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ mm/vmscan.c | 5 +-- 4 files changed, 124 insertions(+), 2 deletions(-) -- 2.16.3