Question Comment obtenir l'interface virtualisée SR-IOV Infiniband UP?


Cela fait maintenant plusieurs jours que je travaille sur cette carte et j'ai réussi à ce que SR-IOV fonctionne avec la carte Mellanox Infiniband à l’aide du dernier microprogramme.

Les fonctions virtuelles apparaissent dans Dom0 en tant que

06: 00.1 Contrôleur de réseau: famille Mellanox Technologies MT27500   [Fonction virtuelle ConnectX-3] 06: 00.2 Contrôleur de réseau: Mellanox   Technologies MT27500 Family [Fonction virtuelle ConnectX-3] 06: 00.3   Contrôleur de réseau: famille Mellanox Technologies MT27500 [ConnectX-3   Fonction virtuelle] 06: 00.4 Contrôleur de réseau: Mellanox Technologies   Famille MT27500 [Fonction virtuelle ConnectX-3]

J'ai ensuite détaché 06: 00.1 de Dom0 et l'a attribué à xen-pciback.

J'ai passé cela dans un domaine de test Xen.

lspci dans le test DomU indique:

00: 01.1 Contrôleur de réseau: famille Mellanox Technologies MT27500   [Fonction virtuelle ConnectX-3]

J'ai les modules suivants chargés dans DomU

mlx4_ib
rdma_ucm
ib_umad
ib_uverbs
ib_ipoib

La sortie dmesg pour les pilotes mlx4 indique:

[   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

J'ai même le périphérique ib0 qui apparaît.

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)

Je peux même localement cingler 10.10.10.10.

Cependant, ces pings ne sont pas envoyés sur le tissu infiniband.

Cela semble être dû au fait que le lien est en panne. ibstat montre:

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

Comment puis-je l'obtenir? le lien domU est UP mais pas celui VF?


Et la réponse se trouve réellement ici: Selon ce lien: http://www.spinics.net/lists/linux-rdma/msg13307.html 

De quoi ai-je besoin pour que le port de l'esclave VF devienne actif?     J'utilise opensm 3.3.13 sur une autre boîte, est-ce assez récent?     (SR-IOV nécessite-t-il une prise en charge de SM?)

Oui, comme Hal l’a noté, vous avez au minimum besoin d’un opensm 3.3.14   (http://marc.info/?l=linux-rdma&m=133819320432335&w=2) comme c'est le   1ère version pour prendre en charge les éléments alias-guid et al nécessaires à SRIOV, 3.3.15   est également disponible, vous voulez donc la 2e version qui supporte cette ...   fondamentalement, vous avez besoin de lien IB pour le PPF et l'esclave pour obtenir un alias   guid enregistré pour cela au SM. Nous (équipe IL) étions en congé mardi / mercredi à   vacances, essaierons de vous donner plus de détails ce soir et si ce n’est pas le cas, par   demain, bien sûr.

J'ai mis à jour OpenSM et ferai bientôt rapport.


EDIT: OK, ça marche maintenant. Cependant, je reçois une éruption de journal pour l'OpenSm. Le processus OpenSM écrit des centaines d'entrées par seconde du formulaire:

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

Et les messages d'erreur ci-dessus ont disparu lorsque j'ai redémarré et j'ai donné plus de mémoire à Dom0. J'ai actuellement 2 Go alloués à avec autoballooning off. Malheureusement, ils sont de retour sans raison évidente. Donc, j'ai posé une nouvelle question qui concerne cette ici

Je ne sais pas vraiment pourquoi cela fonctionne dans dom0 mais dans mon cas, je dois faire fonctionner OpenSM sur le Dom0 qui contient les VF. Je suppose que cela est dû au fait que l'instance OpenSM exécutée sur Dom0 est au courant des VF et peut les publier alors qu'un gestionnaire de sous-réseau sur un autre nœud ne le sait pas? c'est ce que je suppose. J'espère que l'autre nœud xen captera également les VF. Cela peut finir par devenir une autre question. Pour l'instant, cela fonctionne avec un seul nœud Xen.


8
2017-10-01 02:36


origine


Qu'est-ce que "sminfo" montre? - Danila Ladner
Dans Dom0. sminfo: sm lid 1 sm guid 0x2590ffff1758d1, nombre d'activités 40515 priorité 0 état 3 SMINFO_MASTER - Matt
Ok, redémarrer et donner plus de mémoire à Dom0 (2 Go) semble avoir fait disparaître ces erreurs. Je ne sais pas si c'est plus de mémoire ou de redémarrage qui semble l'avoir résolu. - Matt


Réponses:


OpenSM doit être installé et démarré sur l’hôte hyperviseur pour activer l’état. Ensuite, démarrez OpenSM avec l’option: PORTS = "ALL".


1
2017-10-01 03:06



OpenSM est déjà en cours d'exécution sur un autre hôte de la matrice. - Matt
Plus d'infos ajoutées au bas de votre question d'origine - Matt
Dans la configuration sans commutateur, OpenSM doit s'exécuter sur les deux hôtes. - Danila Ladner
Il y a deux interrupteurs. Bien que je ne pense pas qu'ils sont gérés - Matt
Pourquoi le port GUID: 0x0000000000000000 ??? Je viens de le voir. Ce n'est pas censé être 0. - Danila Ladner