Re: [RFC PATCH 3/4] KVM: x86: Add EOI exit bitmap inference

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

 



On Thu, 2015-05-14 at 11:20 +0200, Paolo Bonzini wrote:
> 
> On 14/05/2015 00:24, Steve Rutherford wrote:
> > Seems reasonable.
> > 
> > While we're on the topic of scanning the IOAPIC, should this also
> > scan the IOAPIC when (un)registering irq ack notifiers? [Which is
> > currently done for the in-kernel IOAPIC.]
> 
> Would irq_ack_notifiers be used at all with this patch set?  Resampling
> of IOAPIC level-triggered interrupts would be implemented in userspace.
>  For the same reason, assigned devices using legacy device assignment
> probably would not be able to use INTX (so this feature should depend on
> !KVM_DEVICE_ASSIGNMENT).  Add the emulated i8254 and the last user of
> irq_ack_notifiers goes away.
> 
> Alex, how does VFIO do INTX resampling if you're using TCG or -machine
> kernel_irqchip=off?  (Context: this series keeps the local APIC
> emulation in the kernel, thus including MSI, but moves the IOAPIC
> emualtion to userspace).

Without KVM irqchip, we use a rudimentary approach where we disable
mmaps to the device when an interrupt occurs.  This makes us trap all
accesses to the device.  We then handle any device access from the guest
as a potential EOI and unmask the interrupt.  If the interrupt re-fires,
we've at least rate-limited it.  If it doesn't, a timer eventually
re-enables devices mmaps.  It's not very efficient, but it works (for
both PCI and platform devices) and avoids IRQ APIs through QEMU that get
very platform/machine specific.  Thanks,

Alex

--
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