All of lore.kernel.org
 help / color / mirror / Atom feed
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/10] x86/entry: Consolidation - Part I
Date: Tue, 25 Feb 2020 22:36:36 +0100	[thread overview]
Message-ID: <20200225213636.689276920@linutronix.de> (raw)

Hi!

This is the first batch of a 73 patches series which consolidates the x86
entry code.

This work started off as a trivial 5 patches series moving the heavy
lifting of POSIX CPU timers out of interrupt context into thread/process
context. This discovered that KVM is lacking to handle pending work items
before entering guest mode and added the handling to the x86 KVM
code. Review requested to make this a generic infrastructure.

The next series grew to 25 patches implementing the generic infrastructure,
converting x86 (and as a POC ARM64) over, but it turned out that this was
slightly incomplete and still had some entanglement with the rest of the
x86 entry code as some of that functionality is shared between syscall and
interrupt entry/exit. And it also unearthed the nastyness of IOPL which got
already addressed in mainline.

This series addresses these issues in order to prepare for making the entry
from userspace and exit to userspace (and it's counterpart enter guest) a
generic infrastructure in order to restrict the necessary ASM work to the
bare minimum.

The series is split into 5 parts:

    - General cleanups and bugfixes

    - Consolidation of the syscall entry/exit code

    - Autogenerate simple exception/trap code and reduce the difference
      between 32 and 64 bit

    - Autogenerate complex exception/trap code and provide different entry
      points for #DB and #MC exceptions which allows to address the
      recently discovered RCU vs. world issues in a more structured way

    - Convert the device interrupt entry code to use the same mechanism as
      exceptions and traps and finally convert the system vectors over as
      well. The last step after all those cleanups is to move the return
      from exception/interrupt logic (user mode work, kernel preemption)
      completely from ASM into C-code, so the ASM code just has to take
      care about returning from the exception, which is horrible and
      convoluted enough already.

At the end the x86 entry code is ready to move the syscall parts out into
generic code and finally tackle the initial problem which started all of
this.

The complete series is available from git:

   git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/entry

which contains all 73 patches. The individual parts are tagged, so this
part can be retrieved via:

   git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v1-part1

Thanks,

	tglx

8<---------------
 entry/entry_32.S          |   19 +++++++------------
 include/asm/irq.h         |    2 +-
 include/asm/mce.h         |    3 ---
 include/asm/traps.h       |   17 +++++++----------
 kernel/cpu/mce/core.c     |   12 ++++++++++--
 kernel/cpu/mce/internal.h |    3 +++
 kernel/irq.c              |    3 +--
 kernel/traps.c            |   41 ++++++++++++++++++++++++++++++++++-------
 8 files changed, 63 insertions(+), 37 deletions(-)

             reply	other threads:[~2020-02-25 23:30 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-25 21:36 Thomas Gleixner [this message]
2020-02-25 21:36 ` [patch 01/10] x86/entry/32: Add missing ASM_CLAC to general_protection entry Thomas Gleixner
2020-02-26  1:00   ` Frederic Weisbecker
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 02/10] x86/mce: Disable tracing and kprobes on do_machine_check() Thomas Gleixner
2020-02-26  1:13   ` Frederic Weisbecker
2020-02-26  5:29     ` Andy Lutomirski
2020-02-26 13:28       ` Peter Zijlstra
2020-02-26 15:10         ` Andy Lutomirski
2020-02-26 16:08           ` Peter Zijlstra
2020-02-26 17:28             ` Andy Lutomirski
2020-02-26 18:42               ` Borislav Petkov
2020-02-26 18:59                 ` Peter Zijlstra
2020-02-26 19:09                   ` Andy Lutomirski
2020-02-26 20:59                     ` Steven Rostedt
2020-02-26 11:18   ` Borislav Petkov
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Andy Lutomirski
2020-02-25 21:36 ` [patch 03/10] x86/entry/32: Force MCE through do_mce() Thomas Gleixner
2020-02-26  1:11   ` Frederic Weisbecker
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 04/10] x86/traps: Remove pointless irq enable from do_spurious_interrupt_bug() Thomas Gleixner
2020-02-26  1:19   ` Frederic Weisbecker
2020-02-25 21:36 ` [patch 05/10] x86/traps: Document do_spurious_interrupt_bug() Thomas Gleixner
2020-02-26 17:08   ` Frederic Weisbecker
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 06/10] x86/traps: Remove redundant declaration of do_double_fault() Thomas Gleixner
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 07/10] x86/irq: Remove useless return value from do_IRQ() Thomas Gleixner
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 08/10] x86/entry/32: Remove the 0/-1 distinction from exception entries Thomas Gleixner
2020-02-26  5:34   ` Andy Lutomirski
2020-02-26 18:42     ` Thomas Gleixner
2020-02-26 18:57       ` Andy Lutomirski
2020-02-26 19:15         ` Thomas Gleixner
2020-02-27 14:24           ` [patch V2 " Thomas Gleixner
2020-02-29 11:49             ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 09/10] x86/entry/entry_32: Route int3 through common_exception Thomas Gleixner
2020-02-26 17:35   ` Frederic Weisbecker
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-25 21:36 ` [patch 10/10] x86/traps: Stop using ist_enter/exit() in do_int3() Thomas Gleixner
2020-02-27 14:15   ` [tip: x86/entry] " tip-bot2 for Thomas Gleixner
2020-02-27 14:33   ` tip-bot2 for Andy Lutomirski
2020-02-26  5:26 ` [patch 00/10] x86/entry: Consolidation - Part I Andy Lutomirski
2020-02-26  5:35 ` Andy Lutomirski
2020-02-27 11:01 ` Alexandre Chartre

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=20200225213636.689276920@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 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.