From: Brian Gerst <brgerst@gmail.com>
To: x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
Denys Vlasenko <dvlasenk@redhat.com>,
Andy Lutomirski <luto@amacapital.net>,
Borislav Petkov <bp@suse.de>,
Thomas Gleixner <tglx@linutronix.de>
Subject: [PATCH v2 0/6] x86: Rewrite switch_to()
Date: Sat, 18 Jun 2016 16:56:12 -0400 [thread overview]
Message-ID: <1466283378-17062-1-git-send-email-brgerst@gmail.com> (raw)
This patch set simplifies the switch_to() code, by moving the stack switch
code out of line into an asm stub before calling __switch_to(). This ends
up being more readable, and using the C calling convention instead of
clobbering all registers improves code generation. It also allows newly
forked processes to construct a special stack frame to seamlessly flow
to ret_from_fork, instead of using a test and branch, or an unbalanced
call/ret.
Changes from v1:
- Added struct inactive_task_frame
- Added comments about kernel threads returning to userspace
- Cleaned up some incorrect uses of thread.sp
Brian Gerst (6):
x86-32, kgdb: Don't use thread.ip in sleeping_thread_to_gdb_regs()
x86-64, kgdb: clear GDB_PS on 64-bit
x86: Add struct inactive_task_frame
x86: Rewrite switch_to() code
x86: Pass kernel thread parameters in fork_frame
x86: Fix thread_saved_pc()
arch/x86/entry/entry_32.S | 68 +++++++++++++-----
arch/x86/entry/entry_64.S | 76 ++++++++++++++------
arch/x86/include/asm/processor.h | 13 +---
arch/x86/include/asm/stacktrace.h | 4 +-
arch/x86/include/asm/switch_to.h | 142 +++++++------------------------------
arch/x86/include/asm/thread_info.h | 2 -
arch/x86/kernel/asm-offsets.c | 6 ++
arch/x86/kernel/asm-offsets_32.c | 5 ++
arch/x86/kernel/asm-offsets_64.c | 5 ++
arch/x86/kernel/kgdb.c | 8 +--
arch/x86/kernel/process.c | 13 +++-
arch/x86/kernel/process_32.c | 29 +++-----
arch/x86/kernel/process_64.c | 19 ++---
arch/x86/kernel/smpboot.c | 1 -
14 files changed, 187 insertions(+), 204 deletions(-)
next reply other threads:[~2016-06-18 20:56 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-18 20:56 Brian Gerst [this message]
2016-06-18 20:56 ` [PATCH v2 1/6] x86-32, kgdb: Don't use thread.ip in sleeping_thread_to_gdb_regs() Brian Gerst
2016-06-18 20:56 ` [PATCH v2 2/6] x86-64, kgdb: clear GDB_PS on 64-bit Brian Gerst
2016-06-18 20:56 ` [PATCH v2 3/6] x86: Add struct inactive_task_frame Brian Gerst
2016-06-19 21:18 ` Andy Lutomirski
2016-06-20 15:39 ` Josh Poimboeuf
2016-06-18 20:56 ` [PATCH v2 4/6] x86: Rewrite switch_to() code Brian Gerst
2016-06-19 21:22 ` Andy Lutomirski
2016-06-20 15:44 ` Josh Poimboeuf
2016-06-18 20:56 ` [PATCH v2 5/6] x86: Pass kernel thread parameters in fork_frame Brian Gerst
2016-06-19 21:28 ` Andy Lutomirski
2016-06-19 22:01 ` Brian Gerst
2016-06-20 13:51 ` Borislav Petkov
2016-06-20 15:01 ` Brian Gerst
2016-06-20 15:14 ` Borislav Petkov
2016-06-22 4:24 ` Brian Gerst
2016-07-09 12:01 ` Ingo Molnar
2016-06-18 20:56 ` [PATCH v2 6/6] x86: Fix thread_saved_pc() Brian Gerst
2016-06-20 16:01 ` Josh Poimboeuf
2016-06-22 4:27 ` Brian Gerst
2016-06-24 18:12 ` Josh Poimboeuf
2016-06-19 22:05 ` [PATCH v2 0/6] x86: Rewrite switch_to() Brian Gerst
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=1466283378-17062-1-git-send-email-brgerst@gmail.com \
--to=brgerst@gmail.com \
--cc=bp@suse.de \
--cc=dvlasenk@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--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.