We currently have several kernel parameters that affect page allocator wrt debugging and hardening, some also with config options: init_on_alloc, init_on_free, page_poison, debug_pagealloc. These options generally have their own static keys, but sometimes a decision for e.g. clearing a page depends on multiple options, and the handling is not as efficient as it could be. This series addresses that by centralizing the decisions into a new init_mem_debugging() function that enables individual static keys, and most paths now rely on a single static key check. Subtle dependency on the order of parameters is also eliminated (Patch 1). The result is more efficient and hopefully also more readable code. Vlastimil Babka (3): mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters mm, page_poison: use static key more efficiently mm, page_alloc: reduce static keys in prep_new_page() drivers/virtio/virtio_balloon.c | 2 +- include/linux/mm.h | 36 ++++----- init/main.c | 2 +- mm/page_alloc.c | 126 ++++++++++++++++++-------------- mm/page_poison.c | 40 ++-------- 5 files changed, 97 insertions(+), 109 deletions(-) -- 2.29.0