From: Andy Lutomirski <luto@kernel.org>
To: x86@kernel.org
Cc: linux-kernel@vger.kernel.org, Borislav Petkov <bp@alien8.de>,
Brian Gerst <brgerst@gmail.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Juergen Gross <jgross@suse.com>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Kees Cook <keescook@chromium.org>,
Andy Lutomirski <luto@kernel.org>
Subject: [RFC 00/17] Pile o' entry stack changes
Date: Wed, 6 Sep 2017 14:36:45 -0700 [thread overview]
Message-ID: <cover.1504733277.git.luto@kernel.org> (raw)
Hi all-
Here's a pile of entry changes. In brief summary:
- Lots of people (Linus included) have asked to convert the entry
code to pop registers on exit instead of movqing them off the
stack. This makes a bunch of progress in that direction.
- Linux's sp0 handling has annoyed me for a while. We have
thread_struct::sp0, which never made much sense to me. This
series removes it on x86_64 and removes most references on
x86_32.
- Xen PV's cpuinit code did incomprehensible things with stack
pointers. This makes it comprehensible.
Juergen, this needs a bit of help on Xen -- see the NMI patch for details.
Reviews would be appreciated :)
Andy Lutomirski (17):
x86/asm/64: Remove the restore_c_regs_and_iret label
x86/asm/64: Split the iret-to-user and iret-to-kernel paths
x86/asm/64: Move SWAPGS into the common iret-to-usermode path
x86/asm/64: Simplify reg restore code in the standard IRET paths
x86/asm/64: Shrink paranoid_exit_restore and make labels local
x86/asm/64: Use pop instead of movq in syscall_return_via_sysret
x86/asm/64: Merge the fast and slow SYSRET paths
x86/asm/64: De-Xen-ify our NMI code
x86/asm/32: Pull MSR_IA32_SYSENTER_CS update code out of
native_load_sp0()
x86/asm/64: Pass sp0 directly to load_sp0()
x86/asm: Add task_top_of_stack() to find the top of a task's stack
x86/xen/64: Clean up SP code in cpu_initialize_context()
x86/boot/64: Stop initializing TSS.sp0 at boot
x86/asm/64: Remove all remaining direct thread_struct::sp0 reads
x86/boot/32: Fix cpu_current_top_of_stack initialization at boot
x86/asm/64: Remove thread_struct::sp0
x86/traps: Use a new on_thread_stack() helper to clean up an assertion
arch/x86/entry/calling.h | 9 +++
arch/x86/entry/entry_64.S | 133 ++++++++++++++++++----------------
arch/x86/entry/entry_64_compat.S | 3 +-
arch/x86/include/asm/compat.h | 1 +
arch/x86/include/asm/paravirt.h | 5 +-
arch/x86/include/asm/paravirt_types.h | 2 +-
arch/x86/include/asm/processor.h | 68 +++++++++--------
arch/x86/include/asm/switch_to.h | 23 ++++++
arch/x86/include/asm/thread_info.h | 11 ---
arch/x86/kernel/cpu/common.c | 12 ++-
arch/x86/kernel/head_64.S | 2 +-
arch/x86/kernel/process.c | 3 +-
arch/x86/kernel/process_32.c | 3 +-
arch/x86/kernel/process_64.c | 5 +-
arch/x86/kernel/smpboot.c | 3 +-
arch/x86/kernel/traps.c | 3 +-
arch/x86/kernel/vm86_32.c | 14 ++--
arch/x86/lguest/boot.c | 7 +-
arch/x86/xen/enlighten_pv.c | 7 +-
arch/x86/xen/smp_pv.c | 17 ++++-
20 files changed, 192 insertions(+), 139 deletions(-)
--
2.13.5
next reply other threads:[~2017-09-06 21:37 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-06 21:36 Andy Lutomirski [this message]
2017-09-06 21:36 ` [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Andy Lutomirski
2017-09-07 9:40 ` Borislav Petkov
2017-09-07 9:46 ` Ingo Molnar
2017-09-07 9:49 ` Ingo Molnar
2017-09-07 9:57 ` Borislav Petkov
2017-09-07 10:29 ` Ingo Molnar
2017-09-06 21:36 ` [RFC 02/17] x86/asm/64: Split the iret-to-user and iret-to-kernel paths Andy Lutomirski
2017-09-06 21:36 ` [RFC 03/17] x86/asm/64: Move SWAPGS into the common iret-to-usermode path Andy Lutomirski
2017-09-06 21:36 ` [RFC 04/17] x86/asm/64: Simplify reg restore code in the standard IRET paths Andy Lutomirski
2017-09-12 20:05 ` Josh Poimboeuf
2017-09-06 21:36 ` [RFC 05/17] x86/asm/64: Shrink paranoid_exit_restore and make labels local Andy Lutomirski
2017-09-06 21:36 ` [RFC 06/17] x86/asm/64: Use pop instead of movq in syscall_return_via_sysret Andy Lutomirski
2017-09-06 21:36 ` [RFC 07/17] x86/asm/64: Merge the fast and slow SYSRET paths Andy Lutomirski
2017-09-06 21:36 ` [RFC 08/17] x86/asm/64: De-Xen-ify our NMI code Andy Lutomirski
2017-09-07 9:34 ` Juergen Gross
2017-09-07 18:38 ` Andy Lutomirski
2017-09-08 4:26 ` Juergen Gross
2017-09-06 21:36 ` [RFC 09/17] x86/asm/32: Pull MSR_IA32_SYSENTER_CS update code out of native_load_sp0() Andy Lutomirski
2017-09-12 20:06 ` Josh Poimboeuf
2017-09-06 21:36 ` [RFC 10/17] x86/asm/64: Pass sp0 directly to load_sp0() Andy Lutomirski
2017-09-06 21:36 ` [RFC 11/17] x86/asm: Add task_top_of_stack() to find the top of a task's stack Andy Lutomirski
2017-09-06 21:36 ` [RFC 12/17] x86/xen/64: Clean up SP code in cpu_initialize_context() Andy Lutomirski
2017-09-12 20:09 ` Josh Poimboeuf
2017-09-06 21:36 ` [RFC 13/17] x86/boot/64: Stop initializing TSS.sp0 at boot Andy Lutomirski
2017-09-06 21:36 ` [RFC 14/17] x86/asm/64: Remove all remaining direct thread_struct::sp0 reads Andy Lutomirski
2017-09-06 21:37 ` [RFC 15/17] x86/boot/32: Fix cpu_current_top_of_stack initialization at boot Andy Lutomirski
2017-09-06 21:37 ` [RFC 16/17] x86/asm/64: Remove thread_struct::sp0 Andy Lutomirski
2017-09-06 21:37 ` [RFC 17/17] x86/traps: Use a new on_thread_stack() helper to clean up an assertion Andy Lutomirski
2017-09-12 20:11 ` Josh Poimboeuf
2017-09-12 20:25 ` Andrew Cooper
2017-09-06 22:16 ` [RFC 00/17] Pile o' entry stack changes Andi Kleen
2017-09-07 0:01 ` Andy Lutomirski
2017-09-07 7:04 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1504733277.git.luto@kernel.org \
--to=luto@kernel.org \
--cc=andrew.cooper3@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=jgross@suse.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.