AMD KVM Pci Passthrough reports device busy

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

 



Hello, I've been working for several days trying to get Pci
Passthrough to work.  So far the #kvm IRC channel has helped me with a
few suggestions, though that hasn't yet solved the problem.  I'm
running CentOS 6.2 and was suggested I try compiling 3.2.18 kernel
form kernel.org.  This has changed a few of the messages but the guest
still fails to start.

Grepping for AMD-VI produces:
# dmesg | grep AMD-Vi
AMD-Vi: Enabling IOMMU at 0000:00:00.2 cap 0x40
AMD-Vi: Lazy IO/TLB flushing enabled

After boot I'm running the following script
echo "unbind pci-pci bridge"
echo "1002 4383" > /sys/bus/pci/drivers/pci-stub/new_id
echo "unbind pci device"
echo "0000:03:07.0" > /sys/bus/pci/drivers/ivtv/unbind
echo "4444 0803" > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:03:07.0 > /sys/bus/pci/devices/0000\:03\:07.0/driver/unbind
echo 0000:03:07.0 > /sys/bus/pci/drivers/pci-stub/bind

This is lspci -n showing my device behind the Pci-Pci bridge
-[0000:00]-+-00.0
           +-00.2
           +-02.0-[01]--+-00.0
           |            \-00.1
           +-09.0-[02]----00.0
           +-11.0
           +-12.0
           +-12.2
           +-13.0
           +-13.2
           +-14.0
           +-14.1
           +-14.3
           +-14.4-[03]----07.0
           +-14.5
           +-15.0-[04]--
           +-16.0
           +-16.2
           +-18.0
           +-18.1
           +-18.2
           +-18.3
           +-18.4
           \-18.5

My kvm command and error are:
# /usr/libexec/qemu-kvm -m 3048 -net none -device
virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive
file=/dev/vg_hdd/lv_sagetv,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=native
-device pci-assign,host=03:07.0
Failed to assign device "(null)" : Device or resource busy
qemu-kvm: -device pci-assign,host=03:07.0: Device 'pci-assign' could
not be initialized

dmesg after attempting to start shows:
fuse init (API version 7.17)
ivtv 0000:03:07.0: BAR 0: can't reserve [mem 0xf8000000-0xfbffffff pref]
kvm_vm_ioctl_assign_device: Could not get access to device regions
tda9887 5-0043: destroying instance
tuner-simple 5-0061: destroying instance
ivtv 0000:03:07.0: PCI INT A disabled
ivtv: Removed Hauppauge WinTV PVR-350
pci-stub 0000:03:07.0: claimed by stub
pci-stub 0000:03:07.0: claimed by stub
pci-stub 0000:03:07.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
pci-stub 0000:03:07.0: restoring config space at offset 0x1 (was
0x2100000, writing 0x2100002)
assign device 0:3:7.0 failed
pci-stub 0000:03:07.0: PCI INT A disabled

This is on the
3.2.18 kernel
amd_iommu=1
clear_emulator_capabilities = 0
relaxed_acs_check = 1

Any help would be greatly appreciated.  I've just recently bought this
hardware specifically for this purpose and if the motherboard has a
bad IOMMU implementation I'd like to figure it out in time to exchange
it.  This is an GA-970A-D3

Thanks,
Chris
P.S. I'm not subscribed to the list so if this list requires is be
sure to cc me on responses (sanders.chris@xxxxxxxxx)
--
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