Re: [AMD iommu] pci Failed to assign device "hostdev0" : Device or resource busy

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

 



Am Mon, 12 Dec 2011 13:36:36 -0500
schrieb Don Dutile <ddutile@xxxxxxxxxx>:

> On 12/12/2011 06:15 AM, Andreas Hartmann wrote:
> > Hello!
> >
> > I've got a few questions to a problem, which already was analyzed here
> > sometime ago:
> > http://markmail.org/message/dspovwvzp3wtdrf6#query:+page:1+mid:i2oph4xwfmiknt3y+state:results
> >
> > My situation is a bit different. I do have two PCI cards (a Linksys wlan
> > card and an intel e100 card). Each of these cards should be managed in
> > an own VM. I do have no problems with IRQ sharing (each device does have its own IRQ).
> >
> > I'm using linux 3.0.6, kvm 0.15 and libvirt 0.9.7. Mainboard is: GA-990XA-UD3.
> >
> >
> > The problem is: both cards are behind a PCI-PCI bridge:
> >
> > 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
> >
> >
> > -[0000:00]-+-00.0  ATI Technologies Inc RD890 PCI to PCI bridge (external gfx0 port B)
> >             +-00.2  ATI Technologies Inc Device 5a23
> >             +-02.0-[01]--+-00.0  ATI Technologies Inc Device 6759
> >             |            \-00.1  ATI Technologies Inc Device aa90
> >             +-04.0-[02]----00.0  Device 1b6f:7023
> >             +-09.0-[03]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller
> >             +-0a.0-[04]----00.0  Device 1b6f:7023
> >             +-11.0  ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]
> >             +-12.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
> >             +-12.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller
> >             +-13.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
> >             +-13.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller
> >             +-14.0  ATI Technologies Inc SBx00 SMBus Controller
> >             +-14.1  ATI Technologies Inc SB700/SB800 IDE Controller
> >             +-14.2  ATI Technologies Inc SBx00 Azalia (Intel HDA)
> >             +-14.3  ATI Technologies Inc SB700/SB800 LPC host controller
> >
> >             +-14.4-[05]--+-06.0  Intel Corporation 82557/8/9/0/1 Ethernet Pro 100
> >             |            \-07.0  RaLink RT2800 802.11n PCI
> >
> You cannot assign two devices behind a (legacy) PCI (not PCIe) bridge to two
> different VMs because PCI devices dont provide a B:D.F in their transaction headers;
> In this case, the PCIe-PCI bridge/switch prepends the bridge's B:D.F in front of
> a transaction that is sourced by 05:06.0 or 05:07.0 .
> 
> So, the devices cannot be isolated from each other's (mem) mapping domains in the
> IOMMU, thus, libvirt prevents this (security) violation from being enabled.

Ok. If I remove the intel card and put in instead a 32 bit PCIe card
like TP-Link TG-3468, I could assign each of these two cards to
different VMs.

Is this correct?

[...]

> > 1. Is there any way to get the devices into different VMs? (I can't put them to another PCI slot as there are just 2 PCI slots on the board.)
> Only if the two slots are behind different PCIe-PCI bridges .
> 
> > 2. Is there any fix to prevent the host crash - maybe in a newer version of kvm or kernel?
> don't assign the PCI bridge; libvirt does all the proper bind/unbinding of devices
> for assigned devices, so the above echo steps are unnecessary if you use libvirt.

If I just remove the intel card, I should be able to assign the wlan
card to one of my VMs. I'll try that.


Thank you for your advice!

Kind regards,
Andreas
--
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