Messages in this thread | | | Date | Tue, 05 May 2020 15:49:26 +0200 | From | Thomas Gleixner <> | Subject | [patch V4 part 4 00/24] x86/entry: Entry/exception code rework, nasty exceptions |
| |
Folks,
This is the forth part of the rework series. Part 3 can be found here:
https://lore.kernel.org/r/20200505134354.774943181@linutronix.de
The series has a total of 138 patches and is split into 5 parts. The base for this 4th series is:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-3
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 forth part, i.e. this series is available from:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-4
This part contains the modifications for complex and nasty exceptions and traps:
- Conversion of int3 including a full isolation of the text poke handler so it is fully self contained, i.e does not call out into any instrumentable code.
- Conversion of NMI handling including protection against instrumentation
- Conversion of #DB with separation of the user and kernel mode entries
- Conversion of #MC and #DF
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/entry_32.S | 38 ---- arch/x86/entry/entry_64.S | 35 +--- arch/x86/include/asm/desc.h | 8 arch/x86/include/asm/idtentry.h | 235 +++++++++++++++++++++++++++++ arch/x86/include/asm/mce.h | 2 arch/x86/include/asm/ptrace.h | 2 arch/x86/include/asm/text-patching.h | 11 - arch/x86/include/asm/traps.h | 23 -- arch/x86/kernel/alternative.c | 25 +-- arch/x86/kernel/cpu/common.c | 6 arch/x86/kernel/cpu/mce/core.c | 91 ++++++++--- arch/x86/kernel/cpu/mce/inject.c | 4 arch/x86/kernel/cpu/mce/internal.h | 2 arch/x86/kernel/cpu/mce/p5.c | 8 arch/x86/kernel/cpu/mce/winchip.c | 8 arch/x86/kernel/doublefault_32.c | 10 - arch/x86/kernel/hw_breakpoint.c | 6 arch/x86/kernel/idt.c | 22 +- arch/x86/kernel/nmi.c | 14 - arch/x86/kernel/traps.c | 283 ++++++++++++++++++++++++----------- arch/x86/kvm/vmx/vmx.c | 2 arch/x86/xen/enlighten_pv.c | 17 +- arch/x86/xen/xen-asm_64.S | 12 - include/linux/bsearch.h | 26 ++- kernel/time/timekeeping.c | 2 lib/bsearch.c | 22 -- 26 files changed, 615 insertions(+), 299 deletions(-)
| |