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: [PATCH v2 00/17] powerpc/32: Implement fast syscall entry
Date: Fri, 29 Mar 2019 16:38:22 +0000 (UTC) [thread overview]
Message-ID: <cover.1553877076.git.christophe.leroy@c-s.fr> (raw)
The purpose of this series is to implement a fast syscall entry
on ppc32, as already done on ppc64.
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 rationalising 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%
v2:
- Rebased on latest powerpc/merge branch.
- Added booke support as well (tested on qemu bamboo).
- Added a patch to get rid of the dummy frames when calling trace_hardirqs_on/off.
Christophe Leroy (17):
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: implement fast entry for syscalls on BOOKE
powerpc/32: Remove MSR_PR test when returning from syscall
powerpc/32: don't do syscall stuff in transfer_to_handler
powerpc/32: Don't add dummy frames when calling trace_hardirqs_on/off
arch/powerpc/kernel/entry_32.S | 158 +++++++++++++--------------
arch/powerpc/kernel/head_32.S | 170 +++++++----------------------
arch/powerpc/kernel/head_32.h | 203 +++++++++++++++++++++++++++++++++++
arch/powerpc/kernel/head_40x.S | 152 +++++++-------------------
arch/powerpc/kernel/head_44x.S | 9 +-
arch/powerpc/kernel/head_8xx.S | 133 ++++-------------------
arch/powerpc/kernel/head_booke.h | 131 +++++++++++++++++-----
arch/powerpc/kernel/head_fsl_booke.S | 29 +++--
arch/powerpc/kernel/traps.c | 8 ++
9 files changed, 508 insertions(+), 485 deletions(-)
create mode 100644 arch/powerpc/kernel/head_32.h
--
2.13.3
next reply other threads:[~2019-03-29 16:42 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-29 16:38 Christophe Leroy [this message]
2019-03-29 16:38 ` [PATCH v2 01/17] powerpc/32: Refactor EXCEPTION entry macros for head_8xx.S and head_32.S Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 02/17] powerpc/32: move LOAD_MSR_KERNEL() into head_32.h and use it Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 03/17] powerpc/32: make the 6xx/8xx EXC_XFER_TEMPLATE() similar to the 40x/booke one Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 04/17] powerpc/40x: Don't use SPRN_SPRG_SCRATCH2 in EXCEPTION_PROLOG Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 05/17] powerpc/40x: add exception frame marker Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 06/17] powerpc/40x: Split and rename NORMAL_EXCEPTION_PROLOG Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 07/17] powerpc/40x: Refactor exception entry macros by using head_32.h Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 08/17] powerpc/fsl_booke: ensure SPEFloatingPointException() reenables interrupts Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 09/17] powerpc/32: enter syscall with MSR_EE inconditionaly set Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 10/17] powerpc/32: Enter exceptions with MSR_EE unset Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 11/17] powerpc/32: get rid of COPY_EE in exception entry Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 12/17] powerpc: Fix 32-bit handling of MSR_EE on exceptions Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 13/17] powerpc/32: implement fast entry for syscalls on non BOOKE Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 14/17] powerpc/32: implement fast entry for syscalls on BOOKE Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 15/17] powerpc/32: Remove MSR_PR test when returning from syscall Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 16/17] powerpc/32: don't do syscall stuff in transfer_to_handler Christophe Leroy
2019-03-29 16:38 ` [PATCH v2 17/17] powerpc/32: Don't add dummy frames when calling trace_hardirqs_on/off 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.1553877076.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).