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

Michael S. Tsirkin
2012-09-05T15:05:47Z

On Wed, Sep 05, 2012 at 05:46:17PM +0300, Avi Kivity wrote:
> On 08/21/2012 10:29 PM, Alex Williamson wrote:
> > KVM_IRQFD currently uses the reserved KVM_USERSPACE_IRQ_SOURCE_ID
> > which is also shared with userspace injection methods like
> > KVM_IRQ_LINE. This can cause a conflict if an irqfd triggers on
> > a GSI asserted through KVM_IRQ_LINE. Move irqfd to it's own
> > reserved IRQ source ID. Add a capability for userspace to test
> > for this fix.
>
> I don't think we need a cap, rather a backport if we identify real cases
> where an edge gsi is shared among several devices. Otherwise it is just
> a theoretical bug before level irqfd is introduced.

In that case, I think it's safer to preserve the "bug" as is: we are
changing userspace-visible behaviour for edge interrupts otherwise.
For example if userspace uses kvm_irq_line for an edge
interrupt, set it to 1, previously it could then
continue to send any number of interrupts with irqfd,
now it can't.

Basically the logical OR functionality of source IDs
does not make sense for edge.

How about we do
if (flags&RESAMPLE)
source_id = USERSPACE
else
source_id = IRQFD

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