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

[Xen-users] 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@xxxxxxxxxxxxx) (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=""
>
>
>
----------------------------------------------------------------------------------------


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@xxxxxxxxxxxxx
http://lists.xen.org/xen-users

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.