lkml.org 
[lkml]   [2017]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/6] WIP.x86/mm fixes
Date
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

\
 
 \ /
  Last update: 2017-12-01 08:43    [W:1.440 / U:0.100 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site