lkml.org 
[lkml]   [2020]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[patch V4 part 2 00/18] x86/entry: Entry/exception code rework, syscall and KVM changes
Folks!

This is the second part of the rework series. Part 1 can be found here:

https://lore.kernel.org/r/20200505131602.633487962@linutronix.de

The series has a total of 138 patches and is split into 5 parts. The base
for this series is:

git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-1

The full series with all parts applied is available here:

git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-5

The second part, i.e. this series is available from:

git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-2

This part contains the modifications for the syscall entry code and the
adjustment of the KVM code:

- Move the non entry related ASM code into the regular text section so it
is not part of the protected section

- Move the low level entry C code into the .noinstr.text section

- Make the interaction with lockdep, RCU and tracing correct

- Move the KVM guest_enter/exit() handling strict vs. RCU and
instrumentation protection. It's more or less the same problem as the
syscall entry/exit and needs to be equally restrictive so that the
rules can be enforced with objtool.

The objtool check for the noinstr.text correctness is not yet added to the
build machinery and has to be invoked manually for now:

objtool check -fal vmlinux.o

The checking only works for builtin code as objtool cannot do a combined
analysis of vmlinux.o and a module.o

Thanks,

tglx

8<----------
arch/x86/entry/Makefile | 2
arch/x86/entry/common.c | 173 ++++++++++++++++++++++++---------
arch/x86/entry/entry_32.S | 35 ++----
arch/x86/entry/entry_64.S | 16 +--
arch/x86/entry/entry_64_compat.S | 55 ++++------
arch/x86/entry/thunk_64.S | 45 +++++++-
arch/x86/include/asm/hardirq.h | 4
arch/x86/include/asm/irqflags.h | 3
arch/x86/include/asm/kvm_host.h | 8 +
arch/x86/include/asm/nospec-branch.h | 4
arch/x86/include/asm/paravirt.h | 3
arch/x86/kernel/ftrace_64.S | 2
arch/x86/kvm/svm/svm.c | 66 ++++++++++--
arch/x86/kvm/svm/vmenter.S | 2
arch/x86/kvm/vmx/ops.h | 4
arch/x86/kvm/vmx/vmenter.S | 5
arch/x86/kvm/vmx/vmx.c | 78 +++++++++++---
arch/x86/kvm/x86.c | 4
include/linux/context_tracking.h | 27 +++--
include/linux/context_tracking_state.h | 6 -
kernel/context_tracking.c | 14 +-
lib/smp_processor_id.c | 10 -
22 files changed, 391 insertions(+), 175 deletions(-)

\
 
 \ /
  Last update: 2020-05-05 16:15    [W:0.605 / U:0.512 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site