lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200225213636.689276920@linutronix.de>
Date:   Tue, 25 Feb 2020 22:36:36 +0100
From:   Thomas Gleixner <tglx@...utronix.de>
To:     LKML <linux-kernel@...r.kernel.org>
Cc:     x86@...nel.org, Steven Rostedt <rostedt@...dmis.org>,
        Brian Gerst <brgerst@...il.com>,
        Juergen Gross <jgross@...e.com>,
        Paolo Bonzini <pbonzini@...hat.com>,
        Arnd Bergmann <arnd@...db.de>
Subject: [patch 00/10] x86/entry: Consolidation - Part I

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(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ