Tôi đã dành vài ngày cho việc này bây giờ và tôi đã quản lý để SR-IOV hoạt động với thẻ Infaniband Mellanox bằng phần mềm mới nhất.
Các hàm ảo xuất hiện trong Dom0 dưới dạng
06: 00.1 Bộ điều khiển mạng: Mellanox Technologies MT27500 Family [Chức năng ảo ConnectX-3] 06: 00.2 Bộ điều khiển mạng: Mellanox Technologies MT27500 Family [ConnectX-3 Virtual Function] ] 06: 00.4 Bộ điều khiển mạng: Gia đình Mellanox Technologies MT27500 [Chức năng ảo ConnectX-3]
Sau đó tôi đã tách 06: 00.1 khỏi Dom0 và gán nó cho xen-pciback.
Tôi đã chuyển cái này vào miền thử nghiệm Xen.
lspci bên trong thử nghiệm DomU cho thấy:
00: 01.1 Bộ điều khiển mạng: Gia đình Mellanox Technologies MT27500 [Chức năng ảo ConnectX-3]
Tôi có các mô-đun sau được tải trong DomU
mlx4_ib
rdma_ucm
ib_umad
ib_uverbs
ib_ipoib
đầu ra dmesg cho trình điều khiển mlx4 cho thấy:
[ 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
Tôi thậm chí đã có thiết bị ib0 xuất hiện.
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)
Tôi thậm chí có thể ping cục bộ 10.10.10.10.
Tuy nhiên, những ping đó không được gửi trên vải infiniband.
Nó xuất hiện là do các liên kết là xuống. chương trình 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
Làm thế nào để tôi có được nó LÊN? liên kết domU là LÊN nhưng không phải là VF?
Và câu trả lời thực sự được tìm thấy ở đây: Theo liên kết này: http://www.spinics.net/lists/linux-rdma/msg13307.html
Tôi cần gì để cổng VF của nô lệ hoạt động? Tôi đang chạy opensm 3.3.13 trên một hộp khác, điều đó có đủ mới không? (SR-IOV có yêu cầu hỗ trợ SM không?)
Có, như Hal đã lưu ý, tối thiểu bạn cần mở ra 3.3,14 ( http://marc.info/?l=linux-rdma&m=133819320432335&w=2 ) vì đây là phiên bản đầu tiên hỗ trợ bí danh và hướng dẫn bí danh cần thiết cho SRIOV, 3.3.15 cũng đã ra mắt, vì vậy bạn muốn phiên bản thứ 2 hỗ trợ điều này ... về cơ bản bạn cần liên kết IB cho PPF và nô lệ để có được hướng dẫn bí danh đã đăng ký cho nó @ SM. Chúng tôi (nhóm IL) đã nghỉ thứ ba / thứ tư vì ngày lễ, sẽ cố gắng cung cấp cho bạn thêm thông tin chi tiết tối nay và nếu không, vào ngày mai, chắc chắn.
Bây giờ tôi đã nâng cấp OpenSM và sẽ báo cáo lại sớm.
EDIT: OK, nó đang hoạt động. Tuy nhiên tôi đang nhận được một bản ghi nhật ký cho opensm. Quá trình OpenSM đang viết hàng trăm mục nhập mỗi giây của biểu mẫu:
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
Và các thông báo lỗi ở trên đã biến mất khi tôi khởi động lại và cung cấp thêm bộ nhớ cho Dom0. Tôi hiện có 2GB được phân bổ cho nó khi tự động tắt. Thật không may, họ trở lại không có lý do rõ ràng. Vì vậy, tôi đã hỏi một câu hỏi mới liên quan đến vấn đề đó ở đây
Tôi không thực sự chắc chắn tại sao nó hoạt động trong dom0 nhưng trong trường hợp của tôi, tôi phải có OpenSM chạy trên Dom0 có VF's. Tôi đoán điều này là do phiên bản OpenSM chạy trên Dom0 biết về VF và có thể quảng cáo chúng trong khi trình quản lý mạng con trên một nút khác không? đó là dự đoán của tôi Tôi hy vọng nút xen kẽ khác cũng sẽ nhận được VF của nó. Điều đó có thể trở thành một câu hỏi khác. Hiện tại nó đang hoạt động với một nút Xen.