All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
	"Christopherson, Sean J" <sean.j.christopherson@intel.com>,
	Andrew Lutomirski <luto@kernel.org>, X86 ML <x86@kernel.org>,
	Platform Driver <platform-driver-x86@vger.kernel.org>,
	nhorman@redhat.com, npmccallum@redhat.com, "Ayoun,
	Serge" <serge.ayoun@intel.com>,
	shay.katz-zamir@intel.com, linux-sgx@vger.kernel.org,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v14 09/19] x86/mm: x86/sgx: Signal SEGV_SGXERR for #PFs w/ PF_SGX
Date: Thu, 27 Sep 2018 16:56:03 +0300	[thread overview]
Message-ID: <20180927135603.GF8242@linux.intel.com> (raw)
In-Reply-To: <992b1d6d-cc0f-776f-d938-2a1f7cad52c8@intel.com>

On Wed, Sep 26, 2018 at 02:45:17PM -0700, Dave Hansen wrote:
> On 09/26/2018 02:15 PM, Andy Lutomirski wrote:
> > Could we perhaps have a little vDSO entry (or syscall, I suppose) that
> > runs an enclave an returns an error code, and rig up the #PF handler
> > to check if the error happened in the vDSO entry and fix it up rather
> > than sending a signal?
> 
> Yeah, signals suck.
> 
> So, instead of doing the enclave entry instruction (EENTER is it?), the
> app would do the vDSO call.  It would have some calling convention, like
> "set %rax to 0 before entering".  Then, we just teach the page fault
> handler about the %RIP in the vDSO that can fault and how to move one
> instruction later, munge %RIP to a value that tells about the error,
> then return from the fault.  It would basically be like the kernel
> exception tables, but for userspace.  Right?
> 
> How would a syscall work, though?  I assume we can't just enter the
> enclave from ring0.

Enclave cannot be entered from ring-0.

For me this plan sounds simple and sound.

/Jarkko

WARNING: multiple messages have this Message-ID (diff)
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
	"Christopherson, Sean J" <sean.j.christopherson@intel.com>,
	Andrew Lutomirski <luto@kernel.org>, "X86 ML" <x86@kernel.org>,
	Platform Driver <platform-driver-x86@vger.kernel.org>,
	<nhorman@redhat.com>, <npmccallum@redhat.com>,
	"Ayoun, Serge" <serge.ayoun@intel.com>,
	<shay.katz-zamir@intel.com>, <linux-sgx@vger.kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v14 09/19] x86/mm: x86/sgx: Signal SEGV_SGXERR for #PFs w/ PF_SGX
Date: Thu, 27 Sep 2018 16:56:03 +0300	[thread overview]
Message-ID: <20180927135603.GF8242@linux.intel.com> (raw)
In-Reply-To: <992b1d6d-cc0f-776f-d938-2a1f7cad52c8@intel.com>

On Wed, Sep 26, 2018 at 02:45:17PM -0700, Dave Hansen wrote:
> On 09/26/2018 02:15 PM, Andy Lutomirski wrote:
> > Could we perhaps have a little vDSO entry (or syscall, I suppose) that
> > runs an enclave an returns an error code, and rig up the #PF handler
> > to check if the error happened in the vDSO entry and fix it up rather
> > than sending a signal?
> 
> Yeah, signals suck.
> 
> So, instead of doing the enclave entry instruction (EENTER is it?), the
> app would do the vDSO call.  It would have some calling convention, like
> "set %rax to 0 before entering".  Then, we just teach the page fault
> handler about the %RIP in the vDSO that can fault and how to move one
> instruction later, munge %RIP to a value that tells about the error,
> then return from the fault.  It would basically be like the kernel
> exception tables, but for userspace.  Right?
> 
> How would a syscall work, though?  I assume we can't just enter the
> enclave from ring0.

Enclave cannot be entered from ring-0.

For me this plan sounds simple and sound.

/Jarkko

  parent reply	other threads:[~2018-09-27 13:56 UTC|newest]

Thread overview: 184+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-25 13:06 [PATCH v14 00/19] Intel SGX1 support Jarkko Sakkinen
2018-09-25 13:06 ` Jarkko Sakkinen
2018-09-25 13:06 ` Jarkko Sakkinen
2018-09-25 13:06 ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 01/19] x86/sgx: Update MAINTAINERS Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 02/19] x86/sgx: Architectural structures Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 03/19] x86/cpufeature: Add SGX and SGX_LC CPU features Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 04/19] x86/cpufeatures: Add SGX feature bits Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 16:48   ` Borislav Petkov
2018-09-25 16:48     ` Borislav Petkov
2018-09-25 16:48     ` Borislav Petkov
2018-09-26 11:11     ` Jarkko Sakkinen
2018-09-26 11:11       ` Jarkko Sakkinen
2018-09-26 11:11       ` Jarkko Sakkinen
2018-09-26 11:36       ` Borislav Petkov
2018-09-26 11:36         ` Borislav Petkov
2018-09-27 13:16         ` Jarkko Sakkinen
2018-09-27 13:16           ` Jarkko Sakkinen
2018-09-27 13:51           ` Borislav Petkov
2018-09-27 13:51             ` Borislav Petkov
2018-09-27 14:52             ` Jarkko Sakkinen
2018-09-27 14:52               ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 05/19] x86/msr: Add SGX definitions to msr-index.h Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 06/19] x86/mm: x86/sgx: Add new 'PF_SGX' page fault error code bit Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 07/19] x86/fault: x86/mm/pkeys: relocate stale comment regarding OSPKE Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 08/19] signal: x86/sgx: Add SIGSEGV siginfo code for SGX EPCM fault Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-26 19:14   ` Sean Christopherson
2018-09-26 19:14     ` Sean Christopherson
2018-09-26 19:14     ` Sean Christopherson
2018-09-27 18:41   ` Eric W. Biederman
2018-09-27 18:41     ` Eric W. Biederman
2018-09-27 18:41     ` Eric W. Biederman
2018-09-25 13:06 ` [PATCH v14 09/19] x86/mm: x86/sgx: Signal SEGV_SGXERR for #PFs w/ PF_SGX Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 22:53   ` Andy Lutomirski
2018-09-25 22:53     ` Andy Lutomirski
2018-09-26 17:35     ` Sean Christopherson
2018-09-26 17:35       ` Sean Christopherson
2018-09-26 18:12       ` Andy Lutomirski
2018-09-26 18:12         ` Andy Lutomirski
2018-09-26 20:16         ` Dave Hansen
2018-09-26 20:16           ` Dave Hansen
2018-09-26 20:44           ` Sean Christopherson
2018-09-26 20:44             ` Sean Christopherson
2018-09-26 20:49             ` Dave Hansen
2018-09-26 20:49               ` Dave Hansen
2018-09-26 21:15               ` Andy Lutomirski
2018-09-26 21:15                 ` Andy Lutomirski
2018-09-26 21:45                 ` Dave Hansen
2018-09-26 21:45                   ` Dave Hansen
2018-09-26 22:37                   ` Andy Lutomirski
2018-09-26 22:37                     ` Andy Lutomirski
2018-09-27 14:21                     ` Jarkko Sakkinen
2018-09-27 14:21                       ` Jarkko Sakkinen
2018-09-27 14:41                       ` Andy Lutomirski
2018-09-27 14:41                         ` Andy Lutomirski
2018-09-27 13:56                   ` Jarkko Sakkinen [this message]
2018-09-27 13:56                     ` Jarkko Sakkinen
2018-10-01 21:42                     ` Jethro Beekman
2018-10-01 22:03                       ` Dave Hansen
2018-10-31 21:30                         ` Sean Christopherson
2018-10-31 21:30                           ` Sean Christopherson
2018-10-31 21:35                           ` Dave Hansen
2018-10-31 21:35                             ` Dave Hansen
2018-10-31 21:53                             ` Jethro Beekman
2018-10-31 21:58                               ` Dave Hansen
2018-10-31 22:52                                 ` Andy Lutomirski
2018-10-31 22:52                                   ` Andy Lutomirski
2018-11-01 17:51                                   ` Dave Hansen
2018-11-01 17:52                                     ` Andy Lutomirski
2018-11-01 17:52                                       ` Andy Lutomirski
2018-11-01 17:42                           ` Jarkko Sakkinen
2018-11-01 17:42                             ` Jarkko Sakkinen
2018-11-01 17:42                             ` Jarkko Sakkinen
2018-11-01 17:44                             ` Jarkko Sakkinen
2018-11-01 17:44                               ` Jarkko Sakkinen
2018-11-01 17:44                               ` Jarkko Sakkinen
2018-10-02  0:31                       ` Jarkko Sakkinen
2018-10-02  0:31                         ` Jarkko Sakkinen
2018-10-01 14:29                 ` Sean Christopherson
2018-10-01 14:29                   ` Sean Christopherson
2018-10-01 14:41                   ` Dave Hansen
2018-10-01 14:41                     ` Dave Hansen
2018-10-02  0:07                   ` Jarkko Sakkinen
2018-10-02  0:07                     ` Jarkko Sakkinen
2018-09-27 13:42           ` Jarkko Sakkinen
2018-09-27 13:42             ` Jarkko Sakkinen
2018-09-27 14:58             ` Dave Hansen
2018-09-27 14:58               ` Dave Hansen
2018-09-27 15:39               ` Jarkko Sakkinen
2018-09-27 15:39                 ` Jarkko Sakkinen
2018-09-27 15:53                 ` Dave Hansen
2018-09-27 15:53                   ` Dave Hansen
2018-09-27 13:14     ` Jarkko Sakkinen
2018-09-27 13:14       ` Jarkko Sakkinen
2018-09-27 19:43   ` Eric W. Biederman
2018-09-27 19:43     ` Eric W. Biederman
2018-09-27 19:43     ` Eric W. Biederman
2018-09-28 12:17     ` Jarkko Sakkinen
2018-09-28 12:17       ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 10/19] x86/sgx: Detect Intel SGX Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 20:02   ` Randy Dunlap
2018-09-25 20:02     ` Randy Dunlap
2018-09-25 20:02     ` Randy Dunlap
2018-09-27 13:13     ` Jarkko Sakkinen
2018-09-27 13:13       ` Jarkko Sakkinen
2018-09-27 13:13       ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 11/19] x86/sgx: Add wrappers for ENCLS leaf functions Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 20:01   ` Randy Dunlap
2018-09-25 20:01     ` Randy Dunlap
2018-09-25 20:01     ` Randy Dunlap
2018-09-27 13:12     ` Jarkko Sakkinen
2018-09-27 13:12       ` Jarkko Sakkinen
2018-09-27 13:12       ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 12/19] x86/sgx: Add data structures for tracking the EPC pages Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 20:00   ` Randy Dunlap
2018-09-25 20:00     ` Randy Dunlap
2018-09-25 20:00     ` Randy Dunlap
2018-09-27 13:11     ` Jarkko Sakkinen
2018-09-27 13:11       ` Jarkko Sakkinen
2018-09-27 13:11       ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 13/19] x86/sgx: Enclave Page Cache (EPC) memory manager Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 14/19] x86/sgx: Add sgx_einit() for initializing enclaves Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 15/19] platform/x86: Intel SGX driver Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-10-04 18:01   ` Sean Christopherson
2018-10-04 18:01     ` Sean Christopherson
2018-10-04 18:01     ` Sean Christopherson
2018-10-05 11:32     ` Jarkko Sakkinen
2018-10-05 11:32       ` Jarkko Sakkinen
2018-10-05 11:32       ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 16/19] platform/x86: Add swapping functionality to the " Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 17/19] x86/sgx: Add a simple swapper for the EPC memory manager Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 18/19] platform/x86: ptrace() support for the SGX driver Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06 ` [PATCH v14 19/19] x86/sgx: Driver documentation Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:06   ` Jarkko Sakkinen
2018-09-25 13:27   ` Jonathan Corbet
2018-09-25 13:27     ` Jonathan Corbet
2018-09-25 13:27     ` Jonathan Corbet
2018-10-15 20:54   ` Pavel Machek
2018-10-15 20:54     ` Pavel Machek
2018-10-17 23:45     ` Jarkko Sakkinen
2018-10-17 23:45       ` Jarkko Sakkinen
2018-10-18  9:57       ` Pavel Machek
2018-10-18  9:57         ` Pavel Machek
2018-10-19 23:59         ` Jarkko Sakkinen
2018-10-19 23:59           ` Jarkko Sakkinen
2018-10-17 23:56     ` Dave Hansen
2018-10-17 23:56       ` Dave Hansen

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=20180927135603.GF8242@linux.intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sgx@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=nhorman@redhat.com \
    --cc=npmccallum@redhat.com \
    --cc=peterz@infradead.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sean.j.christopherson@intel.com \
    --cc=serge.ayoun@intel.com \
    --cc=shay.katz-zamir@intel.com \
    --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.