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

[Xen-devel] RE: pci pass-through failure on xen 3.3.0

Hi Masroor,
BTW, you can simply apply the patch directly: login the target host, cd /usr/lib64/python/xen, patch -p4 < fix_find_parent.patch; xend restart.
-- Dexuan

From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Cui, Dexuan
Sent: 2008年10月8日 17:16
To: 'Masroor Vettuparambil'; 'xen-devel@xxxxxxxxxxxxxxxxxxx'
Subject: [Xen-devel] RE: pci pass-through failure on xen 3.3.0

Hi Masroor,
Looks there is an incorrect assumption.
Could you please help to test the attached patch? If it doesn't work, can you attached your output of "lspci -tv" and "lspci -xxx -vvv"?

-- Dexuan


From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Masroor Vettuparambil
Sent: 2008年10月8日 8:33
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] pci pass-through failure on xen 3.3.0

Hi all,


I downloaded the xen 3.3.0 and now testing the pci pass-through with the NIC.

Using late binding, the pci slot  0000:08:01.0 is assigned to pciback.

But pci related xm commands are not working.


For eg:

linux-242:/home/xen-3.3.0 # xm pci-list-assignable-devices

Unexpected error: <type 'exceptions.OSError'>


Please report to xen-devel@xxxxxxxxxxxxxxxxxxx

Traceback (most recent call last):

  File "/usr/sbin/xm", line 10, in <module>


  File "//usr/lib64/python/xen/xm/main.py", line 2883, in main

    _, rc = _run_cmd(cmd, cmd_name, args)

  File "//usr/lib64/python/xen/xm/main.py", line 2907, in _run_cmd

    return True, cmd(args)

  File "//usr/lib64/python/xen/xm/main.py", line 2202, in xm_pci_list_assignable_devices

    devs_list = check_FLR_capability(dev_list)

  File "/usr/lib64/python2.5/xen/util/pci.py", line 288, in check_FLR_capability

    coassigned_pci_list = dev.find_coassigned_devices(True)

  File "/usr/lib64/python2.5/xen/util/pci.py", line 461, in find_coassigned_devices

    dev = self.find_the_uppermost_pci_bridge()

  File "/usr/lib64/python2.5/xen/util/pci.py", line 424, in find_the_uppermost_pci_bridge

    dev_parent = PciDevice(dom, b, d, f)

  File "/usr/lib64/python2.5/xen/util/pci.py", line 382, in __init__


  File "/usr/lib64/python2.5/xen/util/pci.py", line 604, in detect_dev_info

    class_dev = self.pci_conf_read16(PCI_CLASS_DEVICE)

  File "/usr/lib64/python2.5/xen/util/pci.py", line 567, in pci_conf_read16

    fd = os.open(self.cfg_space_path, os.O_RDONLY)

OSError: [Errno 2] No such file or directory: '/sys/bus/pci/devices/0000:06:00.0/config'


I checked the above python scripts.

The function find_parent() in file util/pci.py, tries to find the parent device from the file link ../../../devices/pci0000:06/0000:06:01.0/0000:08:01.0

When it sees pci0000:06, it tries to read the config space of 0000:06:00.0 which doesn’t exist. This causes the above error.


Lspci tree is,


linux-242:/home/xen-3.3.0 # lspci -t


 |           +-01.1

 |           +-02.0-[0000:07]--

 |           \-02.1























Xen-devel mailing list



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