On 28/01/21 16:35, David Woodhouse wrote:
Well, right now that would return -EINVAL, so you're suggesting we add a special case code path to kvm_vcpu_ioctl_interrupt which just sets KVM_REQ_EVENT without calling kvm_queue_interrupt(), in the case where irq->irq == KVM_NR_INTERRUPTS? Then we require that the userspace VMM make that ioctl not only when it's set ->evtchn_upcall_pending for itself, but *also* poll for the guest having done so?
Hmm, right I forgot that the guest can do it for itself. So the static key would be enough.
Paolo
In fact, not only the VMM would have to do that polling, but we'd probably also have to do it on any hypercalls we accelerate in the kernel (as we're planning to do for IPIs, etc.) So it has to live in the kernel anyway in*some* form.