Re: [PATCH v9 1/2] kvm: Use a reserved IRQ source ID for irqfd

Michael S. Tsirkin
2012-09-05T15:07:52Z

On Wed, Sep 05, 2012 at 05:51:53PM +0300, Michael S. Tsirkin wrote:
> On Wed, Sep 05, 2012 at 05:35:43PM +0300, Avi Kivity wrote:
> > On 08/22/2012 03:41 AM, Michael S. Tsirkin wrote:
> > >>
> > >> I assumed you were pointing out the level vs edge interaction. If we
> > >> call that a userspace bug, I can just drop this. Thanks,
> > >>
> > >> Alex
> > >
> > > level is userspace bug I think :)
> >
> > I don't see how it's a bug. Suppose we have a vfio device that shares a
> > gsi with an emulated device. The emulated device naturally uses
> > KVM_IRQ_LINE (it has no need to re-sample on ADN), while vfio naturally
> > has to use irqfd.
>
> Absolutely. But vfio needs to use irqfd with the new flag.
> Using existing irqfd for level is a bug.
>
> > Note one would expect that each irqfd gets its own irq source id, since
> > they are all independent level sources. The reason they don't is that
> > we shut them down anyway and let the sources re-trigger (it is more
> > accurate to say that they have no irq source id, but that would just
> > muddle the implementation).
> >
> > Alex, if the conclusion is that we do need this patch, then please add a
> > comment explaining why we can share the source id among all irqfd users.

Something along the lines of

/*
For resample irqfds, level is a logical OR of all inputs;
to support this, track state for RESAMPLE irqfds separately
from userspace. We do not need to track state for each input since
they are all deasserted at the same time, before resampling.
*/

?

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