Mike Neiderhauser
2014-Feb-04 17:48 UTC
Requesting Help - Error: pci: PCI Backend and pci-stub don't own device
Hi all,
I am new to Xen and hyper vision in general. I have been searching the
mailing list and using my friend google to see if I could find the answer
myself. Unfortunately, everything I have tried and found does not work.
I am attempting to set up a Computer with two HVM's. To start, I attempted
it with a single HVM. I am able to install, configure, start, and VNC into
the VM. The issue is when I attempt PCI pass through. I have tried
attaching the pcie switch as well as individual pci devices. I am trying
to attach an Intel 82576 Gigabit Ethernet card to the HVM. I am unsure of
what information you will need, but included is information I felt was
useful. I have tried various PCI configs in the .cfg file. From the
information that I can see, the pci devices do appear to be mapping to the
pciback driver.
Any help with this would be greatly appreciated!
Regards,
Mike Neiderhauser
##########################################################
root@fiat:~# uname -a
Linux fiat 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC
2013 x86_64 x86_64 x86_64 GNU/Linux
# Ubuntu 12.04.3 LTS Server (installed ubuntu desktop) stock kernel
xm dmesg
(XEN) Xen version 4.1.5 (Ubuntu 4.1.5-0ubuntu0.12.04.2) (
stefan.bader@canonical.com) (gcc version 4.6.3 (Ubuntu/Linaro
4.6.3-1ubuntu5) ) Tue Dec 17 16:35:34 UTC 2013
root@fiat:~# lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 Processor Family DRAM
Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core
Processor Family PCI Express Root Port (rev 09)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset
Family USB Enhanced Host Controller #2 (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family
PCI Express Root Port 1 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset
Family USB Enhanced Host Controller #1 (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a4)
00:1f.0 ISA bridge: Intel Corporation C202 Chipset Family LPC Controller
(rev 04)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset
Family SATA AHCI Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus
Controller (rev 04)
01:00.0 PCI bridge: Integrated Device Technology, Inc. PES12N3A PCI Express
Switch (rev 0e)
02:02.0 PCI bridge: Integrated Device Technology, Inc. PES12N3A PCI Express
Switch (rev 0e)
02:04.0 PCI bridge: Integrated Device Technology, Inc. PES12N3A PCI Express
Switch (rev 0e)
03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network
Connection (rev 01)
03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network
Connection (rev 01)
04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network
Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network
Connection (rev 01)
05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716
Gigabit Ethernet (rev 20)
05:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716
Gigabit Ethernet (rev 20)
06:03.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200eW WPCM450
(rev 0a)
root@fiat:~# lspci -t
-[0000:00]-+-00.0
+-01.0-[01-04]----00.0-[02-04]--+-02.0-[03]--+-00.0
| | \-00.1
| \-04.0-[04]--+-00.0
| \-00.1
+-1a.0
+-1c.0-[05]--+-00.0
| \-00.1
+-1d.0
+-1e.0-[06]----03.0
+-1f.0
+-1f.2
\-1f.3
The domU config file:
----------------------------------------------------------------------------------------
kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder='hvm'
memory = 1024
vcpus=2
name = "ubuntu-hvm-0"
vif = ['bridge=xenbr0']
#intel card
pci=['02:04.0']
#pci=['01:00.0', '02:02.0', '02:04.0',
'03:00.0','03:00.1','04:00.0','04:00.1']
#pci=['00:01.0',
'03:00.0','03:00.1','04:00.0','04:00.1']
#pci= ['03:00.0','03:00.1','04:00.0','04:00.1']
#broadcom card
#pci=['00:1c.0', '05:00.0', '05:00.1']
#pci=['05:00.0', '05:00.1']
disk = ['phy:/dev/fiat-vg/ubuntu-hvm,hda,w']
#,'file:/root/ubuntu-12.04.3-server-amd64.iso,hdc:cdrom,r']
acpi = 1
#apic = 1
device_model = 'qemu-dm'
boot="c"
sdl=0
serial='pty'
vnc=1
vnclisten=""
vncpasswd=""
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
----------------------------------------------------------------------------------------
The script I run at boot to unbind and rebind pci devices:
----------------------------------------------------------------------------------------
#! /bin/bash
# array of PCI Devices used in Xen VMs
#devices=(0000:00:01.0 0000:00:1c.0 0000:01:00.0 0000:02:02.0 0000:02:04.0
0000:03:00.0 0000:03:00.1 0000:04:00.0 0000:04:00.1 0000:05:00.0
0000:05:00.1)
devices=(0000:02:04.0)
# array of Xen VM config files
# currently not used
confvms=("/etc/xen/ubuntu-12.04.3-server-vm-1.cfg"
"/etc/xen/ubuntu-12.04.3-server-vm-0.cfg")
function pciback_dev {
# REQUIRES
# PCI Devices in format:
<domain>:<bus>:<slot>.<function>
if [ $# -ne 1 ]; then
echo "This function allows a single parameter to be passed
representing a PCI Device"
echo "The PCI Device should be in format:
<domain>:<bus>:<slot>.<function>"
echo "EX: 0000:03:00.0"
fi
pcidev=$1
if [ -h /sys/bus/pci/devices/"$pcidev"/driver ]; then
echo "Unbinding $pcidev from" $(basename $(readlink
/sys/bus/pci/devices/"$pcidev"/driver))
echo -n "$pcidev" >
/sys/bus/pci/devices/"$pcidev"/driver/unbind
fi
echo "Binding $pcidev to pciback"
echo -n "$pcidev" > /sys/bus/pci/drivers/pciback/new_slot
echo -n "$pcidev" > /sys/bus/pci/drivers/pciback/bind
return 0
}
function obtain_pci_devices {
echo "Loading Kernel Module 'xen-pciback'"
modprobe pciback
modprobe xen-pciback
echo "Calling function pciback_dev for: "
for index in ${!devices[*]}
do
echo "PCI DEVICE ${devices[$index]}"
pciback_dev ${devices[$index]}
echo ""
done
echo "Listing PCI Devices Available to Xen"
xm pci-list-assignable-devices
}
function start_all_xen_vms {
echo "Starting Hypervised VM's"
for index in ${!confvms[*]}
do
echo "Loading Config ${confvms[$index]}"
xm create ${confvms[$index]} -c
echo ""
done
}
###########################################################################
#main
###########################################################################
obtain_pci_devices
----------------------------------------------------------------------------------------
_______________________________________________
Xen-users mailing list
Xen-users@lists.xen.org
http://lists.xen.org/xen-users