Messages in this thread | | | From | Andy Lutomirski <> | Subject | [PATCH 0/6] WIP.x86/mm fixes | Date | Thu, 30 Nov 2017 22:29:40 -0800 |
| |
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
| |