Re: [RFC PATCH] kvm: Extend irqfd to support level interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/18/2012 05:18 PM, Alex Williamson wrote:
>> 
>> I don't understand how this works.  A level IRQ isn't de-asserted by the
>> EOI, it's de-asserted by its source.
>> 
>> Consider the following sequence:
>> 
>> device        guest
>> 
>>   event
>>    assert
>>               interrupt
>>                interrupt handler
>>                 handle event
>>                 clear ISR bit
>>    deassert
>>   event
>>     assert
>>                EOI
>> 
>> What should happen is that the interrupt will be redelivered
>> immmediately after the EOI, but that won't happen with your API since
>> the EOI ack notifier will deassert the interrupt and nothing will
>> re-assert it.
> 
> A device that can de-assert it's own interrupt based on register/config
> access probably isn't going to subscribe to this interface.  Such a
> device already has much greater visibility of it's service needs.  In
> the case where we have external devices, they'll reassert the interrupt,
> which is part of this api that will need to be documented.
> 
> Comparing this to real hardware, an eoi causes the ioapic to reassert
> the interrupt if any of it's inputs are still active.  Here we
> preemptively de-assert our interrupt and require the user of the
> interface to re-assert.  Thanks,

Okay.  I guess this limits it assigned devices (which is fine, it just
needs to be documented clearly).

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


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux