On Wed, 2019-02-20 at 20:15 +0000, Joao Martins wrote: > userspace registers a @port to an @eventfd, that is bound to a > @vcpu. This information is then used when the guest does an > EVTCHNOP_send with a port registered with the kernel. Why do I want this part? > EVTCHNOP_send short-circuiting happens by marking the event as pending > in the shared info and vcpu info pages and doing the upcall. For IPIs > and interdomain event channels, we do the upcall on the assigned vcpu. This part I understand, 'peeking' at the EVTCHNOP_send hypercall so that we can short-circuit IPI delivery without it having to bounce through userspace. But why would I then want then short-circuit the short-circuit, providing an eventfd for it to signal... so that I can then just receive the event in userspace in a *different* form to the original hypercall exit I would have got?