Hi
Dexuan,
Thanks for your patch.
It looks like the below problem fixed.
But now I ended up with
“non-page aligned bar address” error.
Xend log and lspci
config space are given below,
By the way, I could see
in the script that all the pci devices behind the bridge should be co-assigned
to the same guest.
Does it mean that we
could not export each device function on a multi-function card to separate
guests?
Xend log
is,
[2008-10-09 18:07:16
7867] ERROR (xmlrpclib2:178) Internal error handling
xend.domain.device_configure
Traceback (most recent
call last):
File
"//usr/lib64/python/xen/util/xmlrpclib2.py", line 131, in
_marshaled_dispatch
response = self._dispatch(method, params)
File
"/usr/lib64/python2.5/SimpleXMLRPCServer.py", line 415, in
_dispatch
return func(*params)
File
"<string>", line 1, in <lambda>
File
"//usr/lib64/python/xen/xend/server/XMLRPCServer.py", line 55, in
dispatch
return getattr(info, fn)(*args)
File
"//usr/lib64/python/xen/xend/XendDomainInfo.py", line 821, in
device_configure
return self.pci_device_configure(dev_sxp)
File
"//usr/lib64/python/xen/xend/XendDomainInfo.py", line 722, in
pci_device_configure
self.device_create(dev_sxp)
File
"//usr/lib64/python/xen/xend/XendDomainInfo.py", line 637, in
device_create
self._createDevice(dev_type, dev_config_dict)
File
"//usr/lib64/python/xen/xend/XendDomainInfo.py", line 1869, in
_createDevice
return
self.getDeviceController(deviceClass).createDevice(devConfig)
File
"//usr/lib64/python/xen/xend/server/DevController.py", line 94, in
createDevice
self.setupDevice(config)
File
"//usr/lib64/python/xen/xend/server/pciif.py", line 431, in
setupDevice
self.setupOneDevice(domain, bus, slot, func)
File
"//usr/lib64/python/xen/xend/server/pciif.py", line 289, in
setupOneDevice
raise VmError("pci: %: non-page-aligned MMIO BAR found." %
dev.name)
ValueError: unsupported
format character \047:\047 (0x3a) at index 6
Config space dump of
the NIC is,
linux-242:# lspci -d
17d5: -v -xxx
08:01.0 Ethernet
controller: S2io Inc. Xframe II 10Gbps Ethernet (rev
02)
Subsystem: Hewlett-Packard Company Unknown device
1337
Flags: 66MHz, medium devsel, IRQ 9
Memory at ff5f8000 (64-bit, prefetchable) [disabled]
[size=32K]
Memory at ff400000 (64-bit, prefetchable) [disabled]
[size=1M]
Memory at ff5f7800 (64-bit, prefetchable) [disabled]
[size=2K]
Expansion ROM at fea00000 [disabled] [size=1M]
Capabilities: [40] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/5
Enable-
Capabilities: [60] PCI-X non-bridge device
Capabilities: [80] Vital Product Data
Capabilities: [90] MSI-X: Enable- Mask- TabSize=64
Capabilities: [a0] Power Management version 3
00: d5 17 32 58 00 00
30 02 02 00 00 02 10 40 00 00
10: 0c 80 5f ff 00 00
00 00 0c 00 40 ff 00 00 00 00
20: 0c 78 5f ff 00 00
00 00 00 00 00 00 3c 10 37 13
30: 00 00 a0 fe 40 00
00 00 00 00 00 00 09 01 ff 01
40: 05 60 8a 01 00 00
00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
60: 07 80 73 10 08 08
e3 5f 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
80: 03 90 fc 80 00 00
00 78 00 00 00 00 00 00 00 00
90: 11 a0 3f 00 04 00
00 00 04 04 00 00 00 00 00 00
a0: 01 00 23 7e 00 20
00 dc 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
Thanks,
Masroor
From: Cui,
Dexuan [mailto:dexuan.cui@xxxxxxxxx]
Sent: Wednesday, October 08, 2008 2:31
AM
To: Masroor Vettuparambil;
'xen-devel@xxxxxxxxxxxxxxxxxxx'
Subject: 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.
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"?
Thanks!
--
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>
main.main(sys.argv)
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__
self.detect_dev_info()
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
-+-[0000:06]-+-01.0-[0000:08]----01.0
|
+-01.1
|
+-02.0-[0000:07]--
|
\-02.1
\-[0000:00]-+-00.0
+-01.0
+-01.1
+-06.0
+-07.0
+-08.0
+-09.0-[0000:05]----07.0
+-0b.0-[0000:04]----00.0
+-0c.0-[0000:03]----00.0
+-0d.0-[0000:02]--
+-0e.0-[0000:01]--
+-18.0
+-18.1
+-18.2
+-18.3
+-19.0
+-19.1
+-19.2
\-19.3
Thanks,
Masroor