mm: kfence: allocate kfence_metadata at runtime
authorPeng Zhang <zhangpeng.00@bytedance.com>
Tue, 18 Jul 2023 07:30:19 +0000 (15:30 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:39 +0000 (10:12 -0700)
commitcabdf74e6b319c989eb8e812f1854291ae0af1c0
tree46575c9410c293eb2c3bacec52621f00d8a1ce67
parent8d3a7d797c1a18a24f602a7398103ee894c5bc3b
mm: kfence: allocate kfence_metadata at runtime

kfence_metadata is currently a static array.  For the purpose of
allocating scalable __kfence_pool, we first change it to runtime
allocation of metadata.  Since the size of an object of kfence_metadata is
1160 bytes, we can save at least 72 pages (with default 256 objects)
without enabling kfence.

[akpm@linux-foundation.org: restore newline, per Marco]
Link: https://lkml.kernel.org/r/20230718073019.52513-1-zhangpeng.00@bytedance.com
Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com>
Reviewed-by: Marco Elver <elver@google.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Muchun Song <muchun.song@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/kfence.h
mm/kfence/core.c
mm/kfence/kfence.h
mm/mm_init.c