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

Avi Kivity
2009-05-07T09:48:37Z

Davide Libenzi wrote:
> On Wed, 6 May 2009, Gregory Haskins wrote:
>
>
>> I think we are ok in this regard (at least in v5) without the callback.
>> kvm holds irqfd, which holds eventfd. In a normal situation, we will
>> have eventfd with 2 references. If userspace closes the eventfd, it
>> will drop 1 of the 2 eventfd file references, but the object should
>> remain intact as long as kvm still holds it as well. When the kvm-fd is
>> released, we will then decouple from the eventfd->wqh and drop the last
>> fput(), officially freeing it.
>>
>> Likewise, if kvm is closed before the eventfd, we will simply decouple
>> from the wqh and fput(eventfd), leaving the last reference held by
>> userspace until it closes as well.
>>
>> Let me know if you see any holes in that.
>>
>
> Looks OK, modulo my knowledge of KVM internals.
>

What's your take on adding irq context safe callbacks to irqfd?

To give some background here, we would like to use eventfd as a generic
connector between components, so the components do not know about each
other. So far eventfd successfully abstracts among components in the
same process, in different processes, and in the kernel.

eventfd_signal() can be safely called from irq context, and will wake up
a waiting task. But in some cases, if the consumer is in the kernel, it
may be able to consume the event from irq context, saving a context switch.

So, will you consider patches adding this capability to eventfd?

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