Re: [KVM PATCH v7 2/3] kvm: add support for irqfd via eventfd-notification interface

Avi Kivity
2009-05-14T11:23:42Z

Gregory Haskins wrote:
> KVM provides a complete virtual system environment for guests, including
> support for injecting interrupts modeled after the real exception/interrupt
> facilities present on the native platform (such as the IDT on x86).
> Virtual interrupts can come from a variety of sources (emulated devices,
> pass-through devices, etc) but all must be injected to the guest via
> the KVM infrastructure. This patch adds a new mechanism to inject a specific
> interrupt to a guest using a decoupled eventfd mechnanism: Any legal signal
> on the irqfd (using eventfd semantics from either userspace or kernel) will
> translate into an injected interrupt in the guest at the next available
> interrupt window.
>
> +
> +static void
> +irqfd_inject(struct work_struct *work)
> +{
> + struct _irqfd *irqfd = container_of(work, struct _irqfd, work);
> + struct kvm *kvm = irqfd->kvm;
> +
>

I think you need to ->read() from the irqfd, otherwise the count will
never clear.

> + mutex_lock(&kvm->lock);
> + kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1);
> + kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0);
> + mutex_unlock(&kvm->lock);
> +}
>

--
error compiling committee.c: too many arguments to function