linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Jethro Beekman <jethro@fortanix.com>
Cc: Andy Lutomirski <luto@kernel.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"Christopherson, Sean J" <sean.j.christopherson@intel.com>,
	Florian Weimer <fweimer@redhat.com>,
	Linux API <linux-api@vger.kernel.org>,
	Jann Horn <jannh@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	X86 ML <x86@kernel.org>, linux-arch <linux-arch@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Rich Felker <dalias@libc.org>,
	"nhorman@redhat.com" <nhorman@redhat.com>,
	"npmccallum@redhat.com" <npmccallum@redhat.com>,
	"Ayoun, Serge" <serge.ayoun@intel.com>,
	"shay.katz-zamir@intel.com" <shay.katz-zamir@intel.com>,
	"linux-sgx@vger.kernel.org" <linux-sgx@vger.kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>
Subject: Re: RFC: userspace exception fixups
Date: Sat, 24 Nov 2018 09:07:26 -0800	[thread overview]
Message-ID: <20181124170726.GA32210@linux.intel.com> (raw)
In-Reply-To: <20181121151734.GA16564@linux.intel.com>

On Wed, Nov 21, 2018 at 05:17:34PM +0200, Jarkko Sakkinen wrote:
> On Wed, Nov 21, 2018 at 05:17:32AM +0000, Jethro Beekman wrote:
> > Jarkko, can you please explain you solution in detail? The CPU receives an
> > exception. This will be handled by the kernel exception handler. What
> > information does the kernel exception handler use to determine whether to
> > deliver the exception as a regular signal to the process, or whether to set
> > the special registers values for userspace and just continue executing the
> > process manually?
> 
> Now we throw SIGSEGV when PF_SGX set, right? In my solution that would
> be turned just doing iret to AEP with the extra that three registers get
> exception data (type, reason, addr). No decoding or RIP adjusting
> involved.
> 
> That would mean that you would actually have to implement AEP handler
> than just have enclu there.
> 
> I've also proposed that perhaps for SGX also #UD should be propagated
> this way because for some instructions you need outside help to emulate
> "non-enclave" environment.
> 
> That is all I have drafted together so far. I'll try to finish v18 this
> week with other stuff and refine further next week (unless someone gives
> obvious reason why this doesn't work, which might well be because I
> haven't went too deep with my analysis yet because of lack of time).

The obvious con in this approach is that if you single step the code,
the whole AEP handler would single stepped also everytime. Probably big
enough con that it is better to go with the vDSO approach anyhow...

/Jarkko

  reply	other threads:[~2018-11-24 17:08 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-01 17:53 RFC: userspace exception fixups Andy Lutomirski
2018-11-01 18:09 ` Florian Weimer
2018-11-01 18:30   ` Rich Felker
2018-11-01 19:00   ` Jarkko Sakkinen
2018-11-01 18:27 ` Rich Felker
2018-11-01 18:33 ` Jann Horn
2018-11-01 18:52   ` Rich Felker
2018-11-01 19:10     ` Linus Torvalds
2018-11-01 19:31       ` Rich Felker
2018-11-01 21:24         ` Linus Torvalds
2018-11-01 23:22           ` Andy Lutomirski
2018-11-02 16:30             ` Sean Christopherson
2018-11-02 16:37               ` Jethro Beekman
2018-11-02 16:52                 ` Sean Christopherson
2018-11-02 16:56                   ` Jethro Beekman
2018-11-02 17:01                     ` Andy Lutomirski
2018-11-02 17:05                       ` Jethro Beekman
2018-11-02 17:16                         ` Andy Lutomirski
2018-11-02 17:32                           ` Rich Felker
2018-11-02 17:12                     ` Sean Christopherson
2018-11-02 22:42                   ` Jarkko Sakkinen
2018-11-02 16:56               ` Dave Hansen
2018-11-02 17:06                 ` Sean Christopherson
2018-11-02 17:13                   ` Dave Hansen
2018-11-02 17:33                     ` Sean Christopherson
2018-11-02 17:48                       ` Andy Lutomirski
2018-11-02 18:27                         ` Sean Christopherson
2018-11-02 19:02                           ` Jann Horn
2018-11-02 22:04                             ` Sean Christopherson
2018-11-02 23:27                               ` Jann Horn
2018-11-02 23:32                                 ` Andy Lutomirski
2018-11-02 23:36                                   ` Jann Horn
2018-11-06 15:37                                   ` Sean Christopherson
2018-11-06 16:57                                     ` Andy Lutomirski
2018-11-06 17:03                                       ` Dave Hansen
2018-11-06 17:19                                       ` Sean Christopherson
2018-11-06 18:20                                         ` Andy Lutomirski
2018-11-06 18:41                                           ` Dave Hansen
2018-11-06 19:02                                             ` Andy Lutomirski
2018-11-06 19:22                                               ` Dave Hansen
2018-11-06 20:12                                                 ` Andy Lutomirski
2018-11-06 21:00                                                   ` Dave Hansen
2018-11-06 21:07                                                     ` Andy Lutomirski
2018-11-06 21:41                                                       ` Andy Lutomirski
2018-11-06 21:59                                                         ` Sean Christopherson
2018-11-06 23:00                                                           ` Andy Lutomirski
2018-11-06 23:35                                                             ` Sean Christopherson
2018-11-06 23:39                                                               ` Andy Lutomirski
2018-11-07  0:02                                                                 ` Sean Christopherson
2018-11-07  1:17                                                                   ` Andy Lutomirski
2018-11-07  6:47                                                                     ` Jethro Beekman
2018-11-07 15:34                                                                     ` Sean Christopherson
2018-11-07 19:01                                                                       ` Sean Christopherson
2018-11-07 20:56                                                                         ` Dave Hansen
2018-11-08 15:04                                                                           ` Jarkko Sakkinen
2018-11-08 19:54                                                       ` Sean Christopherson
2018-11-08 20:05                                                         ` Andy Lutomirski
2018-11-08 20:10                                                           ` Dave Hansen
2018-11-08 21:16                                                             ` Sean Christopherson
2018-11-08 21:50                                                               ` Dave Hansen
2018-11-08 22:04                                                                 ` Sean Christopherson
2018-11-09  7:12                                                           ` Christoph Hellwig
2018-11-06 23:17                                               ` Rich Felker
2018-11-06 23:26                                                 ` Sean Christopherson
2018-11-07 21:27                                                   ` Rich Felker
2018-11-07 21:33                                                     ` Andy Lutomirski
2018-11-07 21:40                                                     ` Sean Christopherson
2018-11-08 15:11                                                       ` Jarkko Sakkinen
2018-11-06 17:00                                     ` Dave Hansen
2018-11-02 22:37             ` Jarkko Sakkinen
2018-11-01 19:06 ` Linus Torvalds
2018-11-02 22:07 ` Jarkko Sakkinen
2018-11-18  7:15 ` Jarkko Sakkinen
2018-11-18  7:18   ` Jarkko Sakkinen
2018-11-18 13:02   ` Jarkko Sakkinen
2018-11-19  5:17     ` Jethro Beekman
2018-11-19 14:05       ` Jarkko Sakkinen
2018-11-19 14:59         ` Jarkko Sakkinen
2018-11-19 15:29   ` Andy Lutomirski
2018-11-19 16:02     ` Jarkko Sakkinen
2018-11-19 17:00       ` Andy Lutomirski
2018-11-20 10:11         ` Jarkko Sakkinen
2018-11-20 15:19           ` Andy Lutomirski
2018-11-20 22:55             ` Jarkko Sakkinen
2018-11-21  5:17               ` Jethro Beekman
2018-11-21 15:17                 ` Jarkko Sakkinen
2018-11-24 17:07                   ` Jarkko Sakkinen [this message]
2018-11-26 14:35                   ` Sean Christopherson
2018-11-26 22:06                     ` Jarkko Sakkinen
2018-11-20 18:09           ` Sean Christopherson
2018-11-20 22:46           ` Jarkko Sakkinen

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=20181124170726.GA32210@linux.intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dalias@libc.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=fweimer@redhat.com \
    --cc=jannh@google.com \
    --cc=jethro@fortanix.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sgx@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=nhorman@redhat.com \
    --cc=npmccallum@redhat.com \
    --cc=peterz@infradead.org \
    --cc=sean.j.christopherson@intel.com \
    --cc=serge.ayoun@intel.com \
    --cc=shay.katz-zamir@intel.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).