我已经花了好几天的时间,现在我已经设法使用最新的固件使SR-IOV与Mellanox Infiniband卡一起工作。
虚拟函数出现在Dom0中
06:00.1networking控制器:Mellanox Technologies MT27500系列[ConnectX-3虚拟function] 06:00.2networking控制器:Mellanox Technologies MT27500系列[ConnectX-3虚拟function] 06:00.3networking控制器:Mellanox Technologies MT27500系列[ConnectX-3虚拟function] 06:00.4networking控制器:Mellanox Technologies MT27500系列[ConnectX-3虚拟function]
然后,我从Dom0中分离出06:00.1,并将它分配给xen-pciback。
我已经通过这个到一个Xentesting域。
testingDomU里面的lspci显示:
00:01.1networking控制器:Mellanox Technologies MT27500系列[ConnectX-3虚拟function]
我有以下模块加载DomU
mlx4_ib rdma_ucm ib_umad ib_uverbs ib_ipoib
mlx4驱动程序的dmesg输出显示:
[ 11.956787] mlx4_core: Mellanox ConnectX core driver v1.1 (Dec, 2011) [ 11.956789] mlx4_core: Initializing 0000:00:01.1 [ 11.956859] mlx4_core 0000:00:01.1: enabling device (0000 -> 0002) [ 11.957242] mlx4_core 0000:00:01.1: Xen PCI mapped GSI0 to IRQ30 [ 11.957581] mlx4_core 0000:00:01.1: Detected virtual function - running in slave mode [ 11.957606] mlx4_core 0000:00:01.1: Sending reset [ 11.957699] mlx4_core 0000:00:01.1: Sending vhcr0 [ 11.976090] mlx4_core 0000:00:01.1: HCA minimum page size:512 [ 11.976672] mlx4_core 0000:00:01.1: Timestamping is not supported in slave mode. [ 12.068079] <mlx4_ib> mlx4_ib_add: mlx4_ib: Mellanox ConnectX InfiniBand driver v1.0 (April 4, 2008) [ 12.184072] mlx4_core 0000:00:01.1: mlx4_ib: multi-function enabled [ 12.184075] mlx4_core 0000:00:01.1: mlx4_ib: operating in qp1 tunnel mode
我甚至有ib0设备出现。
ib0 Link encap:UNSPEC HWaddr 80-00-05-49-FE-80-00-00-00-00-00-00-00-00-00-00 inet addr:10.10.10.10 Bcast:10.10.10.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:2044 Metric:1 RX packets:117303 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:256 RX bytes:6576132 (6.5 MB) TX bytes:0 (0.0 B)
我甚至可以在本地ping 10.10.10.10。
但是,这些ping不会在infiniband织物上发出。
这似乎是因为链接closures了。 ibstat显示:
CA 'mlx4_0' CA type: MT4100 Number of ports: 1 Firmware version: 2.30.3000 Hardware version: 0 Node GUID: 0x001405005ef41f25 System image GUID: 0x002590ffff175727 Port 1: State: Down Physical state: LinkUp Rate: 10 Base lid: 9 LMC: 0 SM lid: 1 Capability mask: 0x02514868 Port GUID: 0x0000000000000000
我如何得到它? domU链路是UP的,但不是VF的?
而答案其实是在这里find的:根据这个链接: http : //www.spinics.net/lists/linux-rdma/msg13307.html
从机VF的端口需要什么来激活? 我在另一个盒子上运行opensm 3.3.13,是不是够新? (SR-IOV是否需要任何SM支持?)
是的,正如Hal指出的那样,至less需要opensm 3.3.14( http://marc.info/?l=linux-rdma&m=133819320432335&w=2 ),因为它是第一个支持alias-guid和alias所需的版本SRIOV,3.3.15现在也出来了,所以你想要第二个版本支持这个…基本上你需要IB链接PPF和从机来获得一个别名guid注册它。 我们(IL小组)在假期休假周二/周三,今天晚上会试图给你更多的细节,如果没有的话,明天一定会。
我现在升级了OpenSM,并且很快就会报告。
编辑:好的,现在正在工作。 但是,我得到了一个日志井喷opensm。 OpenSM进程每秒写入数百个条目:
Sep 30 20:36:26 707784 [7DC1700] 0x01 -> validate_requested_mgid: ERR 1B01: Wrong MGID Prefix 0x8000 must be 0xFF Sep 30 20:36:26 707810 [7DC1700] 0x01 -> mcmr_rcv_create_new_mgrp: ERR 1B22: Invalid requested MGID Sep 30 20:36:26 708096 [8DC3700] 0x01 -> validate_requested_mgid: ERR 1B01: Wrong MGID Prefix 0x8000 must be 0xFF Sep 30 20:36:26 708119 [8DC3700] 0x01 -> mcmr_rcv_create_new_mgrp: ERR 1B22: Invalid requested MGID Sep 30 20:36:26 708391 [FF5B0700] 0x01 -> validate_requested_mgid: ERR 1B01: Wrong MGID Prefix 0x8000 must be 0xFF Sep 30 20:36:26 708421 [FF5B0700] 0x01 -> mcmr_rcv_create_new_mgrp: ERR 1B22: Invalid requested MGID Sep 30 20:36:26 708696 [3DB9700] 0x01 -> validate_requested_mgid: ERR 1B01: Wrong MGID Prefix 0x8000 must be 0xFF Sep 30 20:36:26 708719 [3DB9700] 0x01 -> mcmr_rcv_create_new_mgrp: ERR 1B22: Invalid requested MGID
当我重新启动并给Dom0更多的内存时,上面的错误信息就消失了。 我现在有2GB分配给自动closures。 不幸的是,他们回来没有明显的原因。 所以我在这里问了一个新的问题
我不知道为什么它在dom0中工作,但在我的情况下,我必须让OpenSM运行在有VF的Dom0上。 我认为这是因为运行在Dom0上的OpenSM实例知道VF的并且可以通告它们,而另一个节点上的子网pipe理器却不知道? 这是我的猜测。 我希望另一个xen节点也会selectVF。 这可能最终成为另一个问题。 目前,它正在使用一个单一的Xen节点。
必须在pipe理程序主机上安装并启动OpenSM才能启动状态。 然后用选项:PORTS =“ALL”开始启动OpenSM。