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

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