Messages in this thread | | | From | Andy Lutomirski <> | Date | Mon, 10 Aug 2020 16:08:46 -0700 | Subject | Re: [PATCH v36 21/24] x86/vdso: Implement a vDSO for Intel SGX enclave call |
| |
On Thu, Aug 6, 2020 at 7:55 AM Nathaniel McCallum <npmccallum@redhat.com> wrote: > > In a past revision of this patch, I had requested a void *misc > parameter that could be passed through vdso_sgx_enter_enclave_t into > sgx_enclave_exit_handler_t. This request encountered some push back > and I dropped the issue. However, I'd like to revisit it or something > similar.
Why do you need an exit handler at all? IIRC way back when I suggested that we simply not support it at all. If you want to call__vdso_sgx_enter_enclave() in a loop, call it in a loop. If you want to wrap it intelligently in Rust, you don't want a callback anyway -- that forces you have an FFI (or non-Rust, anyway) frame on the stack, which interacts poorly with panic handling and prevents you from using await in your Rust callback handler. If, on the other hand, you just call __vdso_sg_enter_enclave() in a loop, all these problems go away and, if you really want, you can pass in a callback in Rust and call the callback from Rust.
What am I missing? I still don't really understand why we are supporting this mechanism at all. Just the asm code to invoke the callback seems to be about half of the entire function.
| |