[PATCH 0/6] WIP.x86/mm fixes
From: Andy Lutomirski
Date: Fri Dec 01 2017 - 01:30:09 EST
This is a bit oddly formatted, since it's meant to by a set of changes
to a tree, not a normal patch set.
"x86/orc: Don't bail on stack overflow" is a fixed version of
"x86/unwinder/orc: Don't bail on stack overflow". If you'd rather
just manually patch it, change "regs->sp" to "state->sp". Bug noticed
by Dan Carpenter.
Patch 2 is a bugfix that prevents a potential KVM explosion. The
original patch failed to update KVM. Thanks, KVM, for having a
separate copy of everything related to CPU state.
Patch 3 is another bugfix that prevents a potential KVM explosion
once the rest of KAISER is patched in. (I haven't tested, but I imagine
we'd blow up horribly on the first interrupt from user mode after a
VM exit.)
Patch 4 fixes a *huge* performance regression. Well, not as huge as
KAISER, but still huge. It turns out that pushq; retq is very, very
slow.
Patch 5 fixes a potential bug. Thomas, I think you said you had a fix
on top of this fix. If you want my help, let me know.
Patch 6 is new. It makes the TSS remap RO on 64-bit kernels.
Andy Lutomirski (6):
x86/orc: Don't bail on stack overflow
Fixup "x86/asm: Fix assumptions that the HW TSS is at the beginning of
cpu_tss"
Fixup "x86/asm: Remap the TSS into the cpu entry area"
Unsuck "x86/entry/64: Create a percpu SYSCALL entry trampoline"
Fixup "x86/entry/64: Move the IST stacks into cpu_entry_area"
x86/entry/64: Make cpu_entry_area.tss read-only
arch/x86/entry/entry_32.S | 4 ++--
arch/x86/entry/entry_64.S | 24 +++++++++++++------
arch/x86/include/asm/fixmap.h | 15 ++++++++----
arch/x86/include/asm/processor.h | 17 +++++++------
arch/x86/include/asm/switch_to.h | 4 ++--
arch/x86/include/asm/thread_info.h | 2 +-
arch/x86/kernel/asm-offsets.c | 6 ++---
arch/x86/kernel/asm-offsets_32.c | 4 ++--
arch/x86/kernel/cpu/common.c | 49 +++++++++++++++++++++++++++-----------
arch/x86/kernel/ioport.c | 2 +-
arch/x86/kernel/process.c | 6 ++---
arch/x86/kernel/process_32.c | 2 +-
arch/x86/kernel/process_64.c | 2 +-
arch/x86/kernel/traps.c | 10 ++++++--
arch/x86/kernel/unwind_orc.c | 14 +++++++++--
arch/x86/kvm/vmx.c | 2 +-
arch/x86/lib/delay.c | 4 ++--
arch/x86/xen/enlighten_pv.c | 2 +-
18 files changed, 110 insertions(+), 59 deletions(-)
--
2.13.6