Commit 309d0b39 authored by Committed by Linus Torvalds
mm/nobootmem.c: have __free_pages_memory() free in larger chunks.
On large memory machines it can take a few minutes to get through free_all_bootmem(). Currently, when free_all_bootmem() calls __free_pages_memory(), the number of contiguous pages that __free_pages_memory() passes to the buddy allocator is limited to BITS_PER_LONG. BITS_PER_LONG was originally chosen to keep things similar to mm/nobootmem.c. But it is more efficient to limit it to MAX_ORDER. base new change 8TB 202s 172s 30s 16TB 401s 351s 50s That is around 1%-3% improvement on total boot time. This patch was spun off from the boot time rfc Robin and I had been working on. Signed-off-by: Robin Holt <firstname.lastname@example.org> Signed-off-by: Nathan Zimmer <email@example.com> Cc: Robin Holt <firstname.lastname@example.org> Cc: "H. Peter Anvin" <email@example.com> Cc: Ingo Molnar <firstname.lastname@example.org> Cc: Mike Travis <email@example.com> Cc: Yinghai Lu <firstname.lastname@example.org> Cc: Mel Gorman <email@example.com> Acked-by: Johannes Weiner <firstname.lastname@example.org> Reviewed-by: Wanpeng Li <email@example.com> Signed-off-by: Andrew Morton <firstname.lastname@example.org> Signed-off-by: Linus Torvalds <email@example.com>
Showing with 8 additions and 17 deletions