SLAB_FREELIST_RANDOM randomises the order in which the objects in a new slab are handed out. Like SLAB_FREELIST_HARDENED, most distros already enable it, and its cost is only paid when a new slab is set up. With it on, the same system level benchmarks didn't change measurably. Allocating from new slabs does get slower, by up to about 30% per object in a microbenchmark which does little else. So let's enable it by default too. SHUFFLE_PAGE_ALLOCATOR defaults to SLAB_FREELIST_RANDOM && ACPI_NUMA, so it's now built in by default on those systems, but page shuffling itself stays off unless it's enabled with page_alloc.shuffle. Suggested-by: Vlastimil Babka Reviewed-by: Kees Cook Signed-off-by: Chris Down --- mm/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/Kconfig b/mm/Kconfig index f330c2c29fd2..d174537d941e 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -200,6 +200,7 @@ config SLAB_MERGE_DEFAULT config SLAB_FREELIST_RANDOM bool "Randomize slab freelist" depends on !SLUB_TINY + default y help Randomizes the freelist order used on creating new pages. This security feature reduces the predictability of the kernel slab -- 2.56.1