Messages in this thread Patch in this message | | | From | Tiezhu Yang <> | Subject | [RFC PATCH v3 2/3] LoongArch: Only clone and clone3 need to call SAVE_STATIC | Date | Wed, 15 Jun 2022 18:29:32 +0800 |
| |
In handle_syscall, it is unnecessary to call SAVE_STATIC for all syscalls, only clone and clone3 need to do this operation, so it is better to check the syscall number before call SAVE_STATIC.
With this patch, it can reduce many store instructions.
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> --- arch/loongarch/kernel/entry.S | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/arch/loongarch/kernel/entry.S b/arch/loongarch/kernel/entry.S index d5b3dbc..a0f7fcc 100644 --- a/arch/loongarch/kernel/entry.S +++ b/arch/loongarch/kernel/entry.S @@ -14,6 +14,7 @@ #include <asm/regdef.h> #include <asm/stackframe.h> #include <asm/thread_info.h> +#include <asm/unistd.h> .text .cfi_sections .debug_frame @@ -56,8 +57,17 @@ SYM_FUNC_START(handle_syscall) cfi_st u0, PT_R21 cfi_st fp, PT_R22 + /* Syscall number held in a7, only clone and clone3 need to call SAVE_STATIC. */ + li.w t3, __NR_clone + beq a7, t3, 1f + li.w t3, __NR_clone3 + beq a7, t3, 1f + b 2f + +1: SAVE_STATIC +2: move u0, t0 li.d tp, ~_THREAD_MASK and tp, tp, sp -- 2.1.0
| |