From: Christophe Leroy <christophe.leroy@c-s.fr> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com> Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: [RFC PATCH v1 00/16] powerpc/32: Implement fast syscall entry Date: Fri, 8 Feb 2019 12:52:16 +0000 (UTC) [thread overview] Message-ID: <cover.1549630193.git.christophe.leroy@c-s.fr> (raw) The purpose of this series is to implement a fast syscall entry on ppc32. Unlike all other exceptions which can happen at any time and require to preserve all registers, the syscalls do not require the preservation of volatile registers (except LR). Syscall entries can then be optimised with lighter entry code than the general exception handling. In the meantime this series refactorises the exception entry on 40x/6xx/8xx as they are pretty similar, and it takes benh series on rationalise the settings of MSR_EE at exceptions/syscall entries as this change pretty simplies exception entries. On a 8xx, this series improves null_syscall selftest by 17% On a 83xx, this series improves null_syscall selftest by 12,5% Christophe Leroy (16): powerpc: CONFIG_THREAD_INFO_IN_TASK series powerpc/32: Refactor EXCEPTION entry macros for head_8xx.S and head_32.S powerpc/32: move LOAD_MSR_KERNEL() into head_32.h and use it powerpc/32: make the 6xx/8xx EXC_XFER_TEMPLATE() similar to the 40x/booke one powerpc/40x: Don't use SPRN_SPRG_SCRATCH2 in EXCEPTION_PROLOG powerpc/40x: add exception frame marker powerpc/40x: Split and rename NORMAL_EXCEPTION_PROLOG powerpc/40x: Refactor exception entry macros by using head_32.h powerpc/fsl_booke: ensure SPEFloatingPointException() reenables interrupts powerpc/32: enter syscall with MSR_EE inconditionaly set powerpc/32: Enter exceptions with MSR_EE unset powerpc/32: get rid of COPY_EE in exception entry powerpc: Fix 32-bit handling of MSR_EE on exceptions powerpc/32: implement fast entry for syscalls on non BOOKE powerpc/32: Remove MSR_PR test when returning from syscall powerpc/32: don't do syscall stuff in transfer_to_handler on non BOOKE arch/powerpc/Kconfig | 1 + arch/powerpc/Makefile | 7 + arch/powerpc/include/asm/asm-prototypes.h | 4 +- arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 +- arch/powerpc/include/asm/exception-64s.h | 4 +- arch/powerpc/include/asm/irq.h | 18 +- arch/powerpc/include/asm/livepatch.h | 7 +- arch/powerpc/include/asm/processor.h | 105 +--------- arch/powerpc/include/asm/ptrace.h | 2 +- arch/powerpc/include/asm/reg.h | 2 +- arch/powerpc/include/asm/smp.h | 17 +- arch/powerpc/include/asm/task_size_32.h | 21 ++ arch/powerpc/include/asm/task_size_64.h | 79 ++++++++ arch/powerpc/include/asm/thread_info.h | 19 -- arch/powerpc/kernel/asm-offsets.c | 12 +- arch/powerpc/kernel/entry_32.S | 261 ++++++++++++++----------- arch/powerpc/kernel/entry_64.S | 12 +- arch/powerpc/kernel/epapr_hcalls.S | 5 +- arch/powerpc/kernel/exceptions-64e.S | 13 +- arch/powerpc/kernel/exceptions-64s.S | 2 +- arch/powerpc/kernel/head_32.S | 182 ++++------------- arch/powerpc/kernel/head_32.h | 203 +++++++++++++++++++ arch/powerpc/kernel/head_40x.S | 154 ++++----------- arch/powerpc/kernel/head_44x.S | 16 +- arch/powerpc/kernel/head_64.S | 1 + arch/powerpc/kernel/head_8xx.S | 133 ++----------- arch/powerpc/kernel/head_booke.h | 44 ++--- arch/powerpc/kernel/head_fsl_booke.S | 44 ++--- arch/powerpc/kernel/idle_6xx.S | 8 +- arch/powerpc/kernel/idle_book3e.S | 2 +- arch/powerpc/kernel/idle_e500.S | 8 +- arch/powerpc/kernel/idle_power4.S | 2 +- arch/powerpc/kernel/irq.c | 114 ++--------- arch/powerpc/kernel/kgdb.c | 28 --- arch/powerpc/kernel/machine_kexec_64.c | 6 +- arch/powerpc/kernel/misc_32.S | 17 +- arch/powerpc/kernel/process.c | 63 +++--- arch/powerpc/kernel/setup-common.c | 2 +- arch/powerpc/kernel/setup_32.c | 26 ++- arch/powerpc/kernel/setup_64.c | 51 +---- arch/powerpc/kernel/smp.c | 16 +- arch/powerpc/kernel/stacktrace.c | 29 ++- arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 6 +- arch/powerpc/kernel/traps.c | 8 + arch/powerpc/kvm/book3s_hv_hmi.c | 1 + arch/powerpc/mm/hash_low_32.S | 14 +- arch/powerpc/net/bpf_jit32.h | 5 +- arch/powerpc/sysdev/6xx-suspend.S | 5 +- arch/powerpc/xmon/xmon.c | 2 +- 49 files changed, 816 insertions(+), 967 deletions(-) create mode 100644 arch/powerpc/include/asm/task_size_32.h create mode 100644 arch/powerpc/include/asm/task_size_64.h create mode 100644 arch/powerpc/kernel/head_32.h -- 2.13.3
WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@c-s.fr> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com> Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v1 00/16] powerpc/32: Implement fast syscall entry Date: Fri, 8 Feb 2019 12:52:16 +0000 (UTC) [thread overview] Message-ID: <cover.1549630193.git.christophe.leroy@c-s.fr> (raw) The purpose of this series is to implement a fast syscall entry on ppc32. Unlike all other exceptions which can happen at any time and require to preserve all registers, the syscalls do not require the preservation of volatile registers (except LR). Syscall entries can then be optimised with lighter entry code than the general exception handling. In the meantime this series refactorises the exception entry on 40x/6xx/8xx as they are pretty similar, and it takes benh series on rationalise the settings of MSR_EE at exceptions/syscall entries as this change pretty simplies exception entries. On a 8xx, this series improves null_syscall selftest by 17% On a 83xx, this series improves null_syscall selftest by 12,5% Christophe Leroy (16): powerpc: CONFIG_THREAD_INFO_IN_TASK series powerpc/32: Refactor EXCEPTION entry macros for head_8xx.S and head_32.S powerpc/32: move LOAD_MSR_KERNEL() into head_32.h and use it powerpc/32: make the 6xx/8xx EXC_XFER_TEMPLATE() similar to the 40x/booke one powerpc/40x: Don't use SPRN_SPRG_SCRATCH2 in EXCEPTION_PROLOG powerpc/40x: add exception frame marker powerpc/40x: Split and rename NORMAL_EXCEPTION_PROLOG powerpc/40x: Refactor exception entry macros by using head_32.h powerpc/fsl_booke: ensure SPEFloatingPointException() reenables interrupts powerpc/32: enter syscall with MSR_EE inconditionaly set powerpc/32: Enter exceptions with MSR_EE unset powerpc/32: get rid of COPY_EE in exception entry powerpc: Fix 32-bit handling of MSR_EE on exceptions powerpc/32: implement fast entry for syscalls on non BOOKE powerpc/32: Remove MSR_PR test when returning from syscall powerpc/32: don't do syscall stuff in transfer_to_handler on non BOOKE arch/powerpc/Kconfig | 1 + arch/powerpc/Makefile | 7 + arch/powerpc/include/asm/asm-prototypes.h | 4 +- arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 +- arch/powerpc/include/asm/exception-64s.h | 4 +- arch/powerpc/include/asm/irq.h | 18 +- arch/powerpc/include/asm/livepatch.h | 7 +- arch/powerpc/include/asm/processor.h | 105 +--------- arch/powerpc/include/asm/ptrace.h | 2 +- arch/powerpc/include/asm/reg.h | 2 +- arch/powerpc/include/asm/smp.h | 17 +- arch/powerpc/include/asm/task_size_32.h | 21 ++ arch/powerpc/include/asm/task_size_64.h | 79 ++++++++ arch/powerpc/include/asm/thread_info.h | 19 -- arch/powerpc/kernel/asm-offsets.c | 12 +- arch/powerpc/kernel/entry_32.S | 261 ++++++++++++++----------- arch/powerpc/kernel/entry_64.S | 12 +- arch/powerpc/kernel/epapr_hcalls.S | 5 +- arch/powerpc/kernel/exceptions-64e.S | 13 +- arch/powerpc/kernel/exceptions-64s.S | 2 +- arch/powerpc/kernel/head_32.S | 182 ++++------------- arch/powerpc/kernel/head_32.h | 203 +++++++++++++++++++ arch/powerpc/kernel/head_40x.S | 154 ++++----------- arch/powerpc/kernel/head_44x.S | 16 +- arch/powerpc/kernel/head_64.S | 1 + arch/powerpc/kernel/head_8xx.S | 133 ++----------- arch/powerpc/kernel/head_booke.h | 44 ++--- arch/powerpc/kernel/head_fsl_booke.S | 44 ++--- arch/powerpc/kernel/idle_6xx.S | 8 +- arch/powerpc/kernel/idle_book3e.S | 2 +- arch/powerpc/kernel/idle_e500.S | 8 +- arch/powerpc/kernel/idle_power4.S | 2 +- arch/powerpc/kernel/irq.c | 114 ++--------- arch/powerpc/kernel/kgdb.c | 28 --- arch/powerpc/kernel/machine_kexec_64.c | 6 +- arch/powerpc/kernel/misc_32.S | 17 +- arch/powerpc/kernel/process.c | 63 +++--- arch/powerpc/kernel/setup-common.c | 2 +- arch/powerpc/kernel/setup_32.c | 26 ++- arch/powerpc/kernel/setup_64.c | 51 +---- arch/powerpc/kernel/smp.c | 16 +- arch/powerpc/kernel/stacktrace.c | 29 ++- arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 6 +- arch/powerpc/kernel/traps.c | 8 + arch/powerpc/kvm/book3s_hv_hmi.c | 1 + arch/powerpc/mm/hash_low_32.S | 14 +- arch/powerpc/net/bpf_jit32.h | 5 +- arch/powerpc/sysdev/6xx-suspend.S | 5 +- arch/powerpc/xmon/xmon.c | 2 +- 49 files changed, 816 insertions(+), 967 deletions(-) create mode 100644 arch/powerpc/include/asm/task_size_32.h create mode 100644 arch/powerpc/include/asm/task_size_64.h create mode 100644 arch/powerpc/kernel/head_32.h -- 2.13.3
next reply other threads:[~2019-02-08 12:52 UTC|newest] Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-08 12:52 Christophe Leroy [this message] 2019-02-08 12:52 ` [RFC PATCH v1 00/16] powerpc/32: Implement fast syscall entry Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 01/16] powerpc: CONFIG_THREAD_INFO_IN_TASK series Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 02/16] powerpc/32: Refactor EXCEPTION entry macros for head_8xx.S and head_32.S Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 03/16] powerpc/32: move LOAD_MSR_KERNEL() into head_32.h and use it Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-11 0:21 ` Benjamin Herrenschmidt 2019-02-11 0:21 ` Benjamin Herrenschmidt 2019-02-11 6:26 ` Christophe Leroy 2019-02-11 6:26 ` Christophe Leroy 2019-02-11 8:06 ` Benjamin Herrenschmidt 2019-02-11 8:06 ` Benjamin Herrenschmidt 2019-02-08 12:52 ` [PATCH v1 04/16] powerpc/32: make the 6xx/8xx EXC_XFER_TEMPLATE() similar to the 40x/booke one Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 05/16] powerpc/40x: Don't use SPRN_SPRG_SCRATCH2 in EXCEPTION_PROLOG Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 06/16] powerpc/40x: add exception frame marker Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 07/16] powerpc/40x: Split and rename NORMAL_EXCEPTION_PROLOG Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [PATCH v1 08/16] powerpc/40x: Refactor exception entry macros by using head_32.h Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 09/16] powerpc/fsl_booke: ensure SPEFloatingPointException() reenables interrupts Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 10/16] powerpc/32: enter syscall with MSR_EE inconditionaly set Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 11/16] powerpc/32: Enter exceptions with MSR_EE unset Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 12/16] powerpc/32: get rid of COPY_EE in exception entry Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 13/16] powerpc: Fix 32-bit handling of MSR_EE on exceptions Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 14/16] powerpc/32: implement fast entry for syscalls on non BOOKE Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-10 18:05 ` christophe leroy 2019-02-08 12:52 ` [RFC PATCH v1 15/16] powerpc/32: Remove MSR_PR test when returning from syscall Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy 2019-02-08 12:52 ` [RFC PATCH v1 16/16] powerpc/32: don't do syscall stuff in transfer_to_handler on non BOOKE Christophe Leroy 2019-02-08 12:52 ` Christophe Leroy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1549630193.git.christophe.leroy@c-s.fr \ --to=christophe.leroy@c-s.fr \ --cc=benh@kernel.crashing.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=npiggin@gmail.com \ --cc=paulus@samba.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.