|
@@ -357,8 +357,11 @@ void *kvmalloc_node(size_t size, gfp_t flags, int node)
|
|
|
WARN_ON_ONCE((flags & GFP_KERNEL) != GFP_KERNEL);
|
|
|
|
|
|
/*
|
|
|
- * Make sure that larger requests are not too disruptive - no OOM
|
|
|
- * killer and no allocation failure warnings as we have a fallback
|
|
|
+ * We want to attempt a large physically contiguous block first because
|
|
|
+ * it is less likely to fragment multiple larger blocks and therefore
|
|
|
+ * contribute to a long term fragmentation less than vmalloc fallback.
|
|
|
+ * However make sure that larger requests are not too disruptive - no
|
|
|
+ * OOM killer and no allocation failure warnings as we have a fallback.
|
|
|
*/
|
|
|
if (size > PAGE_SIZE) {
|
|
|
kmalloc_flags |= __GFP_NOWARN;
|