[PATCH v3 16/19] arm64: text replication: add Kconfig
Hao Jia
jiahao.os at bytedance.com
Wed Jan 17 00:53:54 PST 2024
From: "Russell King (Oracle)" <rmk+kernel at armlinux.org.uk>
Add the Kconfig symbol for kernel text replication. This unfortunately
requires KASAN and kernel text randomisation options to be disabled at
the moment.
Currently, we do not support CONFIG_ARM64_16K_PAGES and
CONFIG_PGTABLE_LEVLS=4, because PGDIR_SIZE is 128T,
which is too large to allow the kernel text to
exclusively occupy an L0 page table entry.
Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
---
arch/arm64/Kconfig | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 8f6cf1221b6a..a9dfe6e0006a 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -163,7 +163,7 @@ config ARM64
select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE
- select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
+ select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48 && !REPLICATE_KTEXT)
select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
@@ -1443,6 +1443,13 @@ config NODES_SHIFT
Specify the maximum number of NUMA Nodes available on the target
system. Increases memory reserved to accommodate various tables.
+config REPLICATE_KTEXT
+ bool "Replicate kernel text across numa nodes"
+ depends on NUMA && !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
+ help
+ Say Y here to enable replicating the kernel text across multiple
+ nodes in a NUMA cluster. This trades memory for speed.
+
source "kernel/Kconfig.hz"
config ARCH_SPARSEMEM_ENABLE
@@ -2161,6 +2168,7 @@ config RELOCATABLE
config RANDOMIZE_BASE
bool "Randomize the address of the kernel image"
+ depends on !REPLICATE_KTEXT
select RELOCATABLE
help
Randomizes the virtual address at which the kernel image is
--
2.20.1
More information about the linux-arm-kernel
mailing list