Message ID | 20200330180811.31381-1-sean.j.christopherson@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | x86/sgx: Make vDSO callable from C | expand |
On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > close to being callable from C (with caveats and a cooperative enclave). > The missing pieces are preserving %rbx and taking @leaf as a standard > parameter. > > v2: > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > - Add CFI directive for RBX. [Cedric] I'm sorry for throwing stick's constantly but I think having a real ELF loader is for better. /Jarkko
On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> wrote: > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > close to being callable from C (with caveats and a cooperative enclave). > > The missing pieces are preserving %rbx and taking @leaf as a standard > > parameter. > > > > v2: > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > - Add CFI directive for RBX. [Cedric] > > I'm sorry for throwing stick's constantly but I think having a real > ELF loader is for better. Why is it one or the other?
On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > <jarkko.sakkinen@linux.intel.com> wrote: > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > close to being callable from C (with caveats and a cooperative enclave). > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > parameter. > > > > > > v2: > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > - Add CFI directive for RBX. [Cedric] > > > > I'm sorry for throwing stick's constantly but I think having a real > > ELF loader is for better. > > Why is it one or the other? Hmm... Not sure I understand what you want to know. A raw binary requires a hardcoded way to interpret it. Obviously ELF is for better. /Jarkko
On Tue, Mar 31, 2020 at 7:58 AM Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> wrote: > > On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > > close to being callable from C (with caveats and a cooperative enclave). > > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > > parameter. > > > > > > > > v2: > > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > > - Add CFI directive for RBX. [Cedric] > > > > > > I'm sorry for throwing stick's constantly but I think having a real > > > ELF loader is for better. This statement seems like you are juxtaposing having __vdso_sgx_enter_enclave() be potentially C-compatible with having an ELF-loader. These are not incompabile. __vdso_sgx_enter_enclave() can be C-callable *and* you can have an ELF loader. > > Why is it one or the other? > > Hmm... Not sure I understand what you want to know. > > A raw binary requires a hardcoded way to interpret it. Obviously ELF > is for better. We (Enarx) implement an ELF loader.
On Tue, Mar 31, 2020 at 09:40:24AM -0400, Nathaniel McCallum wrote: > On Tue, Mar 31, 2020 at 7:58 AM Jarkko Sakkinen > <jarkko.sakkinen@linux.intel.com> wrote: > > > > On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > > > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > > > close to being callable from C (with caveats and a cooperative enclave). > > > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > > > parameter. > > > > > > > > > > v2: > > > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > > > - Add CFI directive for RBX. [Cedric] > > > > > > > > I'm sorry for throwing stick's constantly but I think having a real > > > > ELF loader is for better. > > This statement seems like you are juxtaposing having > __vdso_sgx_enter_enclave() be potentially C-compatible with having an > ELF-loader. These are not incompabile. __vdso_sgx_enter_enclave() can > be C-callable *and* you can have an ELF loader. I'm not honestly sure what this is about but my comment was about heavy rebasing of the GIT tree as I rewrote the selftest last week. /Jarkko
On Wed, Apr 1, 2020 at 4:18 AM Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> wrote: > > On Tue, Mar 31, 2020 at 09:40:24AM -0400, Nathaniel McCallum wrote: > > On Tue, Mar 31, 2020 at 7:58 AM Jarkko Sakkinen > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > > > > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > > > > close to being callable from C (with caveats and a cooperative enclave). > > > > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > > > > parameter. > > > > > > > > > > > > v2: > > > > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > > > > - Add CFI directive for RBX. [Cedric] > > > > > > > > > > I'm sorry for throwing stick's constantly but I think having a real > > > > > ELF loader is for better. > > > > This statement seems like you are juxtaposing having > > __vdso_sgx_enter_enclave() be potentially C-compatible with having an > > ELF-loader. These are not incompabile. __vdso_sgx_enter_enclave() can > > be C-callable *and* you can have an ELF loader. > > I'm not honestly sure what this is about but my comment was about heavy > rebasing of the GIT tree as I rewrote the selftest last week. Okay. Let's chalk it up to miscommunication then. :)
On Wed, Apr 01, 2020 at 09:06:38AM -0400, Nathaniel McCallum wrote: > On Wed, Apr 1, 2020 at 4:18 AM Jarkko Sakkinen > <jarkko.sakkinen@linux.intel.com> wrote: > > > > On Tue, Mar 31, 2020 at 09:40:24AM -0400, Nathaniel McCallum wrote: > > > On Tue, Mar 31, 2020 at 7:58 AM Jarkko Sakkinen > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > > > > > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > > > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > > > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > > > > > close to being callable from C (with caveats and a cooperative enclave). > > > > > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > > > > > parameter. > > > > > > > > > > > > > > v2: > > > > > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > > > > > - Add CFI directive for RBX. [Cedric] > > > > > > > > > > > > I'm sorry for throwing stick's constantly but I think having a real > > > > > > ELF loader is for better. > > > > > > This statement seems like you are juxtaposing having > > > __vdso_sgx_enter_enclave() be potentially C-compatible with having an > > > ELF-loader. These are not incompabile. __vdso_sgx_enter_enclave() can > > > be C-callable *and* you can have an ELF loader. > > > > I'm not honestly sure what this is about but my comment was about heavy > > rebasing of the GIT tree as I rewrote the selftest last week. > > Okay. Let's chalk it up to miscommunication then. :) Ha, I was in the same boat as Nathaniel. We thought the "having a real ELF loader comment" was a comment on the patch itself, i.e. that you disagreed with it in some way because it didn't support an ELF loader, hence our confusion. Now I realize you were refering to the rebase needed due to rewriting the selftest to use an ELF loader. Crisis aborted :-)
On Wed, Apr 01, 2020 at 09:06:38AM -0400, Nathaniel McCallum wrote: > On Wed, Apr 1, 2020 at 4:18 AM Jarkko Sakkinen > <jarkko.sakkinen@linux.intel.com> wrote: > > > > On Tue, Mar 31, 2020 at 09:40:24AM -0400, Nathaniel McCallum wrote: > > > On Tue, Mar 31, 2020 at 7:58 AM Jarkko Sakkinen > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > > > > > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > > > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > > > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > > > > > close to being callable from C (with caveats and a cooperative enclave). > > > > > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > > > > > parameter. > > > > > > > > > > > > > > v2: > > > > > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > > > > > - Add CFI directive for RBX. [Cedric] > > > > > > > > > > > > I'm sorry for throwing stick's constantly but I think having a real > > > > > > ELF loader is for better. > > > > > > This statement seems like you are juxtaposing having > > > __vdso_sgx_enter_enclave() be potentially C-compatible with having an > > > ELF-loader. These are not incompabile. __vdso_sgx_enter_enclave() can > > > be C-callable *and* you can have an ELF loader. > > > > I'm not honestly sure what this is about but my comment was about heavy > > rebasing of the GIT tree as I rewrote the selftest last week. > > Okay. Let's chalk it up to miscommunication then. :) Yeah, lets bring a background :-) Last week basically rewrote the self-test. It now directly loads ELF and dynamically signs that. Thus, the codebase has been kind of moving target for a while. I'm absolutely for these changes as soon as the form fits to the existing codebase. /Jarkko
On Wed, Apr 01, 2020 at 07:49:38AM -0700, Sean Christopherson wrote: > On Wed, Apr 01, 2020 at 09:06:38AM -0400, Nathaniel McCallum wrote: > > On Wed, Apr 1, 2020 at 4:18 AM Jarkko Sakkinen > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > On Tue, Mar 31, 2020 at 09:40:24AM -0400, Nathaniel McCallum wrote: > > > > On Tue, Mar 31, 2020 at 7:58 AM Jarkko Sakkinen > > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > > > On Mon, Mar 30, 2020 at 05:42:29PM -0400, Nathaniel McCallum wrote: > > > > > > On Mon, Mar 30, 2020 at 4:48 PM Jarkko Sakkinen > > > > > > <jarkko.sakkinen@linux.intel.com> wrote: > > > > > > > > > > > > > > On Mon, Mar 30, 2020 at 11:08:06AM -0700, Sean Christopherson wrote: > > > > > > > > Nathaniel pointed out that __vdso_sgx_enter_enclave() is tantalizingly > > > > > > > > close to being callable from C (with caveats and a cooperative enclave). > > > > > > > > The missing pieces are preserving %rbx and taking @leaf as a standard > > > > > > > > parameter. > > > > > > > > > > > > > > > > v2: > > > > > > > > - Rebase to Jarkko's latest master, commit 402fb35a477a, "docs: ...") > > > > > > > > - Add CFI directive for RBX. [Cedric] > > > > > > > > > > > > > > I'm sorry for throwing stick's constantly but I think having a real > > > > > > > ELF loader is for better. > > > > > > > > This statement seems like you are juxtaposing having > > > > __vdso_sgx_enter_enclave() be potentially C-compatible with having an > > > > ELF-loader. These are not incompabile. __vdso_sgx_enter_enclave() can > > > > be C-callable *and* you can have an ELF loader. > > > > > > I'm not honestly sure what this is about but my comment was about heavy > > > rebasing of the GIT tree as I rewrote the selftest last week. > > > > Okay. Let's chalk it up to miscommunication then. :) > > Ha, I was in the same boat as Nathaniel. We thought the "having a real > ELF loader comment" was a comment on the patch itself, i.e. that you > disagreed with it in some way because it didn't support an ELF loader, > hence our confusion. > > Now I realize you were refering to the rebase needed due to rewriting the > selftest to use an ELF loader. Crisis aborted :-) Awesome :-) /Jarkko