From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Andy Lutomirski <luto@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
x86@kernel.org, Dave Hansen <dave.hansen@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org,
Andy Lutomirski <luto@amacapital.net>,
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
Josh Triplett <josh@joshtriplett.org>
Subject: [RFC PATCH v2 0/4] x86: Add vDSO exception fixup for SGX
Date: Thu, 6 Dec 2018 14:19:18 -0800 [thread overview]
Message-ID: <20181206221922.31012-1-sean.j.christopherson@intel.com> (raw)
This version is almost entirely about the vDSO function itself,
i.e. patch 4/4. Feel free to ignore patches 2/4 and 3/4, I need
to do (a lot) more legwork to address feedback and improve their
changelogs. I'm expecting that to take a fair amount of time and
wanted to get the alternative exit handler idea out there ASAP.
The new vDSO function builds but is otherwise completely untested.
v2:
- For all intents and purposes, rewrite the SGX vDSO function.
This version is quite a bit different than anything discussed in
the past. Rather than provide separate a separate function or an
explicit parameter to request ERESUME, e.g. to recover after a
fault, take an optional "exit handler" that provides the caller
the opportunity to specify if and how the enclave should be
resumed. More details in the changelog.
- Rename it to __vdso_sgx_enter_enclave() to abstract the details
of EENTER and ERESUME to some degree.
- Give the enclave RDI, RSI and RDX to pass data out of the enclave.
- Call fixup_vdso_exception() in do_int3().
v1: https://lkml.kernel.org/r/20181205232012.28920-1-sean.j.christopherson@intel.com
Sean Christopherson (4):
x86/vdso: Add support for exception fixup in vDSO functions
x86/fault: Attempt to fixup unhandled #PF in vDSO before signaling
x86/traps: Attempt to fixup exceptions in vDSO before signaling
x86/vdso: Add __vdso_sgx_enter_enclave() to wrap SGX enclave
transitions
arch/x86/entry/vdso/Makefile | 5 +-
arch/x86/entry/vdso/extable.c | 37 +++++++
arch/x86/entry/vdso/extable.h | 17 ++++
arch/x86/entry/vdso/vdso-layout.lds.S | 9 +-
arch/x86/entry/vdso/vdso.lds.S | 1 +
arch/x86/entry/vdso/vdso2c.h | 58 +++++++++--
arch/x86/entry/vdso/vsgx_enter_enclave.c | 119 +++++++++++++++++++++++
arch/x86/include/asm/vdso.h | 5 +
arch/x86/kernel/traps.c | 15 +++
arch/x86/mm/fault.c | 7 ++
10 files changed, 262 insertions(+), 11 deletions(-)
create mode 100644 arch/x86/entry/vdso/extable.c
create mode 100644 arch/x86/entry/vdso/extable.h
create mode 100644 arch/x86/entry/vdso/vsgx_enter_enclave.c
--
2.19.2
next reply other threads:[~2018-12-06 22:19 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-06 22:19 Sean Christopherson [this message]
2018-12-06 22:19 ` [RFC PATCH v2 1/4] x86/vdso: Add support for exception fixup in vDSO functions Sean Christopherson
2018-12-06 22:19 ` [RFC PATCH v2 2/4] x86/fault: Attempt to fixup unhandled #PF in vDSO before signaling Sean Christopherson
2018-12-06 22:19 ` [RFC PATCH v2 3/4] x86/traps: Attempt to fixup exceptions " Sean Christopherson
2018-12-06 22:19 ` [RFC PATCH v2 4/4] x86/vdso: Add __vdso_sgx_enter_enclave() to wrap SGX enclave transitions Sean Christopherson
2018-12-06 22:50 ` Andy Lutomirski
2018-12-07 16:51 ` Sean Christopherson
2018-12-07 17:56 ` Andy Lutomirski
2018-12-07 19:02 ` Sean Christopherson
2018-12-07 19:23 ` Andy Lutomirski
2018-12-07 20:09 ` Sean Christopherson
2018-12-07 20:16 ` Andy Lutomirski
2018-12-07 20:35 ` Sean Christopherson
2018-12-07 21:26 ` Sean Christopherson
2018-12-07 23:33 ` Andy Lutomirski
2018-12-11 19:31 ` Sean Christopherson
2018-12-11 20:04 ` Andy Lutomirski
2018-12-11 22:00 ` Sean Christopherson
2018-12-11 23:12 ` Andy Lutomirski
2018-12-07 16:31 ` Dr. Greg
2018-12-07 18:05 ` Andy Lutomirski
2018-12-07 18:19 ` Jethro Beekman
2018-12-07 18:15 ` Jethro Beekman
2018-12-07 18:44 ` Dave Hansen
2018-12-07 18:50 ` Andy Lutomirski
2018-12-08 8:15 ` Jethro Beekman
2018-12-14 15:04 ` Sean Christopherson
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=20181206221922.31012-1-sean.j.christopherson@intel.com \
--to=sean.j.christopherson@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome