From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, Steven Rostedt <rostedt@goodmis.org>,
Brian Gerst <brgerst@gmail.com>, Juergen Gross <jgross@suse.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: [patch 00/15] x86/entry: Consolidation - Part V
Date: Tue, 25 Feb 2020 23:47:19 +0100 [thread overview]
Message-ID: <20200225224719.950376311@linutronix.de> (raw)
Hi!
This is the fifthh batch of a 73 patches series which consolidates the x86
entry code. The larger explanation is in the part I cover letter:
https://lore.kernel.org/r/20200225213636.689276920@linutronix.de
I applies on top of part IV which can be found here:
https://lore.kernel.org/r/20200225223321.231477305@linutronix.de
This is the last step of _this_ consolidation work:
- Get rid of the odd vector number transport via pt_regs for do_IRQ() and
spurious interrupt handlers by pushing the plain vector number into the
error code location and providing it as second argument to the C
functions. This also gets rid of thehistorical adjustment of the vector
number into the -0x80 to 0x7f range which does not make any sense for
at least 15 years but still survived until today
- Get rid of the special entry code for device interrupts which just can
use the common idtentry mechanisms as all other exceptions do.
- Convert all the system vectors to the IDTENTRY mechanism and get rid of
the pointless difference in evicting them on 32 and 64 bit
- Finally move the return from exception work (prepare return to user
mode and kernel preemption) into C-code and get rid of the ASM gunk.
This applies on top of part three which is available here:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v1-part4
To get part 1 - 5 pull from here:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v1-part5
The diffstat for part V is appended below. The overall diffstat summary is:
50 files changed, 1380 insertions(+), 1264 deletions(-)
but most importantly the overall diffstat for the ASM code is:
3 files changed, 302 insertions(+), 759 deletions(-)
i.e. 457 lines of ASM gone...
and all idt entry points have now:
- a central home in idtentry.h instead of being sprinkled aorund 10 files
- a consistent naming scheme also vs. XEN/PV
- the same entry/exit conventions and protections against all sorts of
instrumentation which makes it harder to screw up for new entry points
This finally allows to move the sysall entry/exit work into a generic place
and fix the initial problem of moving POSIX CPu tiemrs hevay lifting into
thread context. But that's going to be another 25 patches which are coming
once this is resolved.
Thanks,
tglx
8<---------------
arch/x86/include/asm/acrn.h | 11 -
arch/x86/include/asm/entry_arch.h | 56 ------
b/arch/x86/entry/common.c | 56 ++++--
b/arch/x86/entry/entry_32.S | 123 ++-----------
b/arch/x86/entry/entry_64.S | 296 +++++---------------------------
b/arch/x86/hyperv/hv_init.c | 3
b/arch/x86/include/asm/hw_irq.h | 22 --
b/arch/x86/include/asm/idtentry.h | 143 +++++++++++++++
b/arch/x86/include/asm/irq.h | 6
b/arch/x86/include/asm/irq_work.h | 1
b/arch/x86/include/asm/mshyperv.h | 14 -
b/arch/x86/include/asm/traps.h | 10 -
b/arch/x86/include/asm/uv/uv_bau.h | 6
b/arch/x86/kernel/apic/apic.c | 28 ++-
b/arch/x86/kernel/apic/msi.c | 3
b/arch/x86/kernel/apic/vector.c | 2
b/arch/x86/kernel/cpu/acrn.c | 6
b/arch/x86/kernel/cpu/mce/amd.c | 2
b/arch/x86/kernel/cpu/mce/therm_throt.c | 2
b/arch/x86/kernel/cpu/mce/threshold.c | 2
b/arch/x86/kernel/cpu/mshyperv.c | 18 +
b/arch/x86/kernel/idt.c | 34 +--
b/arch/x86/kernel/irq.c | 21 +-
b/arch/x86/kernel/irq_work.c | 3
b/arch/x86/kernel/smp.c | 10 -
b/arch/x86/platform/uv/tlb_uv.c | 2
b/arch/x86/xen/enlighten_hvm.c | 6
b/drivers/xen/events/events_base.c | 3
b/include/xen/events.h | 7
29 files changed, 350 insertions(+), 546 deletions(-)
next reply other threads:[~2020-02-25 23:27 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-25 22:47 Thomas Gleixner [this message]
2020-02-25 22:47 ` [patch 01/15] x86/irq: Convey vector as argument and not in ptregs Thomas Gleixner
2020-02-26 5:13 ` Andy Lutomirski
2020-02-26 5:45 ` Brian Gerst
2020-02-26 20:13 ` Thomas Gleixner
2020-02-26 21:35 ` Andy Lutomirski
2020-02-26 23:50 ` Thomas Gleixner
2020-02-26 21:54 ` Brian Gerst
2020-02-26 23:43 ` Thomas Gleixner
2020-02-27 0:04 ` Brian Gerst
2020-02-25 22:47 ` [patch 02/15] x86/entry/64: Add ability to switch to IRQ stacks in idtentry Thomas Gleixner
2020-02-25 22:47 ` [patch 03/15] x86/entry: Add IRQENTRY_IRQ macro Thomas Gleixner
2020-02-26 15:05 ` Miroslav Benes
2020-02-25 22:47 ` [patch 04/15] x86/entry: Use idtentry for interrupts Thomas Gleixner
2020-02-25 22:47 ` [patch 05/15] x86/entry: Provide IDTEnTRY_SYSVEC Thomas Gleixner
2020-02-26 6:10 ` Andy Lutomirski
2020-02-26 20:15 ` Thomas Gleixner
2020-02-25 22:47 ` [patch 06/15] x86/entry: Convert APIC interrupts to IDTENTRY_SYSVEC Thomas Gleixner
2020-02-25 22:47 ` [patch 07/15] x86/entry: Convert SMP system vectors " Thomas Gleixner
2020-02-25 22:47 ` [patch 08/15] x86/entry: Convert various system vectors Thomas Gleixner
2020-02-25 22:47 ` [patch 09/15] x86/entry: Convert KVM vectors to IDTENTRY_SYSVEC Thomas Gleixner
2020-02-26 10:54 ` Paolo Bonzini
2020-02-25 22:47 ` [patch 10/15] x86/entry: Convert various hypervisor " Thomas Gleixner
2020-02-25 22:47 ` [patch 11/15] x86/entry: Convert XEN hypercall vector " Thomas Gleixner
2020-02-25 22:47 ` [patch 12/15] x86/entry: Remove the apic/BUILD interrupt leftovers Thomas Gleixner
2020-02-25 22:47 ` [patch 13/15] x86/entry/32: Remove redundant irq disable code Thomas Gleixner
2020-02-25 22:47 ` [patch 14/15] x86/entry: Provide return_from exception() Thomas Gleixner
2020-02-25 22:47 ` [patch 15/15] x86/entry: Use return_from_exception() Thomas Gleixner
2020-02-26 9:53 ` [patch 00/15] x86/entry: Consolidation - Part V Peter Zijlstra
2020-02-26 10:02 ` Peter Zijlstra
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=20200225224719.950376311@linutronix.de \
--to=tglx@linutronix.de \
--cc=arnd@arndb.de \
--cc=brgerst@gmail.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rostedt@goodmis.org \
--cc=x86@kernel.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