Re: What's the usage model (purpose) of interrupt remapping in IOMMU?

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

 



On Wed, 2013-08-14 at 10:37 +0800, Liu ping fan wrote:
> On Wed, Nov 2, 2011 at 11:31 PM, Alex Williamson
> <alex.williamson@xxxxxxxxxx> wrote:
> > On Wed, 2011-11-02 at 13:26 +0800, Kai Huang wrote:
> >> Hi,
> >>
> >> In case of direct io, without the interrupt remapping in IOMMU (intel
> >> VT-d or AMD IOMMU), hypervisor needs to inject interrupt for guest
> >> when the guest is scheduled to specific CPU. At the beginning I
> >> thought with IOMMU's interrupt remapping, the hardware can directly
> >> forward the interrupt to guest without trapping into hypervisor when
> >> the interrupt happens, but after reading the Intel VT-d's manual, I
> >> found the interrupt mapping feature just add another mapping which
> >> allows software to control (mainly) the destination and vector, and we
> >> still need hypervisor to inject the interrupt when the guest is
> >> scheduled as only after the guest is scheduled, the target CPU can be
> >> known. If my understanding is correct, seems the interrupt remapping
> >> does not bring any performance improvement. So what's the benefit of
> >> IOMMU's interrupt remapping? Can someone explain the usage model of
> >> interrupt remapping in IOMMU?
> >
> > Interrupt remapping provides isolation and compatibility, not
> 
> The guest can not directly program the msi-x on pci device, so msix is
> still under the control of host. Why do we need extra control
> introduced by iommu ?

An MSI interrupt is just a DMA write with a specific address and
payload.  Any device capable of DMA can theoretically inject an MSI
interrupt using other means besides the MSI/MSI-X configuration areas.
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