One is we reduce the number of lazy_max_pages (right now its around 32MB per core worth of pages).
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index aa3891e..2720f4f 100644
@@ -564,7 +564,7 @@ static unsigned long lazy_max_pages(void)
log = fls(num_online_cpus());
- return log * (32UL * 1024 * 1024 / PAGE_SIZE);
+ return log * (8UL * 1024 * 1024 / PAGE_SIZE);
This seems like the right fix to me. Perhaps even make it somewhat smaller.
Even on larger systems it's probably fine because they have a lot more
cores/threads these days, so it will be still sufficiently large.