On Tue, Aug 18, 2020 at 8:15 AM Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote: > > On Mon, Aug 10, 2020 at 04:08:46PM -0700, Andy Lutomirski wrote: > > On Thu, Aug 6, 2020 at 7:55 AM Nathaniel McCallum <npmccallum@xxxxxxxxxx> 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. > > How would Intel SDK be able to do its stack manipulation? The same as now. The enclave would see a pointer to a stack-like writable area in USER_RSP, but it just wouldn't be the actual stack. I suppose that the caller of the vdso can play these games just as well as the vdso itself, though, so maybe this is not helpful. --Andy