
Add hardware xcall framework support. Changes in v3: - Optimize the use of hardware xcall and not use them at the same time. - Use syscall table instead of xcall enable bitmap in hardware xcall. - Use percpu syscall table cache to simplfy code. - Use csel to improve the jump instruction. Changes in v2: - Split software xcall and hardware xcall code and use same bitmap to check xcall enable. Jinjie Ruan (5): arm64: Refactor the xcall proc code arm64: Reserve a kabi in task_struct exclusively for xcall arm64: Add hardware xcall framework support Add percpu syscall table cache Use csel to improve the __NR_syscalls check arch/arm64/Kconfig.turbo | 5 +- arch/arm64/include/asm/exception.h | 5 + arch/arm64/include/asm/mmu_context.h | 7 + arch/arm64/include/asm/xcall.h | 95 ++++++++++++ arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/asm-offsets.c | 2 +- arch/arm64/kernel/cpufeature.c | 40 ++++-- arch/arm64/kernel/entry-common.c | 2 +- arch/arm64/kernel/entry.S | 32 +++-- arch/arm64/kernel/xcall/Makefile | 2 + arch/arm64/kernel/xcall/entry.S | 208 +++++++++++++++++++++++++++ arch/arm64/kernel/xcall/xcall.c | 72 ++++++++++ arch/arm64/tools/cpucaps | 2 +- fs/proc/Makefile | 1 + fs/proc/base.c | 109 -------------- fs/proc/internal.h | 4 + fs/proc/proc_xcall.c | 175 ++++++++++++++++++++++ include/linux/sched.h | 2 +- kernel/fork.c | 15 +- 19 files changed, 629 insertions(+), 150 deletions(-) create mode 100644 arch/arm64/include/asm/xcall.h create mode 100644 arch/arm64/kernel/xcall/Makefile create mode 100644 arch/arm64/kernel/xcall/entry.S create mode 100644 arch/arm64/kernel/xcall/xcall.c create mode 100644 fs/proc/proc_xcall.c -- 2.34.1