Re: PCI passthrough resource remapping

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

 



On 01/14/2010 08:31 PM, Ryan C. Underwood wrote:

On Thu, Jan 14, 2010 at 05:54:51PM +0200, Avi Kivity wrote:
On 01/14/2010 05:47 PM, Michael S. Tsirkin wrote:
Michael, I think 'DisINTx-' means the device is not PCI 2.3 compliant?
No it doesn't, just that interrupt disable bit is not set.
Thanks.  Ryan, while kvm doesn't support assigning a device with
shared interrupts now, in the future it will likely be possible to
share it.  You'll still need an iommu.
No IOMMU on this machine and this is all integrated hardware.

This IOMMU requirement seems so strange.  I used to pass through PCI
devices ages ago when using the DOSEMU emulator.  It emulated PCI BIOS
functions and mapped the PCI config space and memory regions into the
emulator process.  The device interrupt was grabbed and handled in the
emulator's kernel support, waking up the emulator when an interrupt came
in.

I don't really know anything about kvm internals, but I'd like to
understand more about the particulars of the IOMMU requirement if you
don't mind.

PCI cards can access system memory directly. If you assign a card to a guest, the guest will program the card to transfer data to system memory using guest addresses; since guest addresses don't correspond to host addresses, memory corruption will ensue.

Not sure about your experience with DOSEMU; maybe these devices were not dma capable.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

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