Cette procédure indique comment créer une fonction virtuelle SR-IOV InfiniBand.
primary# ldm start-reconf root-domain-name
Effectuez uniquement cette étape si la virtualisation d'E/S n'est pas déjà activée pour le bus qui a la fonction physique.
primary# ldm set-io iov=on bus
primary# ldm create-vf pf-name
Vous pouvez exécuter cette commande pour chaque fonction virtuelle que vous souhaitez créer. Vous pouvez également utiliser l'option –n pour créer plusieurs fonctions virtuelles à partir de la même fonction physique d'une seule commande. Reportez-vous aux pages de manuel Example 7–6 et ldm(1M).
Exécutez l'une des commandes suivantes :
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
L'exemple suivant affiche des informations sur la fonction physique /SYS/MB/RISER1/PCIE4/IOVIB.PF0 :
Cette fonction physique se trouve dans l'emplacement PCIe 4.
La chaîne IOVIB indique que la fonction physique est un périphérique SR-IOV InfiniBand.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary niu_0 NIU niu_0 primary /SYS/MB/RISER0/PCIE0 PCIE pci_0 primary EMP /SYS/MB/RISER1/PCIE1 PCIE pci_0 primary EMP /SYS/MB/RISER2/PCIE2 PCIE pci_0 primary EMP /SYS/MB/RISER0/PCIE3 PCIE pci_0 primary OCC /SYS/MB/RISER1/PCIE4 PCIE pci_0 primary OCC /SYS/MB/RISER2/PCIE5 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/SASHBA1 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/NET2 PCIE pci_0 primary OCC /SYS/MB/RISER0/PCIE3/IOVIB.PF0 PF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_0 primary
La commande suivante fournit plus d'informations sur la fonction physique spécifiée. La valeur maxvfs indique le nombre maximal de fonctions virtuelles prises en charge par le périphérique.
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64
L'exemple suivant indique comment créer une fonction virtuelle statique. Lancez tout d'abord une reconfiguration retardée sur le domaine primary et activez la virtualisation d'E/S sur le bus PCIe pci_0 . Etant donné que le bus pci_0 a déjà été assigné au domaine root primary, vous devez utiliser la commande ldm set-io pour activer la virtualisation d'E/S.
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm set-io iov=on pci_0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. -----------------------------------------------------------------------
Vous pouvez ensuite utiliser la commande ldm create-vf pour créer une fonction virtuelle à partir de la fonction physique /SYS/MB/RISER1/PCIE4/IOVIB.PF0.
primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ---------------------------------------------------------------------- Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0
Notez que vous pouvez créer plusieurs fonctions virtuelles au cours d'une même reconfiguration retardée. La commande suivante crée une deuxième fonction virtuelle :
primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ----------------------------------------------------------------------- Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1
Pour finir, réinitialisez le domaine root primary pour appliquer les modifications.
primary# shutdown -i6 -g0 -y Shutdown started. Changing to init state 6 - please wait ...
Cette procédure indique comment détruire une fonction virtuelle SR-IOV InfiniBand.
Vous pouvez détruire une fonction virtuelle si elle n'est pas affectée à un domaine. Vous pouvez uniquement détruire une fonction virtuelle dans l'ordre inverse de la création en d'autres termes, seule la dernière fonction virtuelle créée peut être détruite. La configuration résultante est validée par le pilote de la fonction physique.
primary# ldm start-reconf root-domain-name
primary# ldm destroy-vf vf-name
Vous pouvez exécuter cette commande pour chaque fonction virtuelle que vous souhaitez détruire. Vous pouvez également utiliser l'option –n pour détruire plusieurs fonctions virtuelles à partir de la même fonction physique d'une seule commande. Reportez-vous aux pages de manuel Example 7–8 et ldm(1M).
Exécutez l'une des commandes suivantes :
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
L'exemple suivant illustre la destruction de la fonction virtuelle InfiniBand statique /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1.
La commande ldm list-io affiche des informations sur les bus, les fonctions physiques et les fonctions virtuelles.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0
La commande ldm list-io -l permet d'obtenir des informations supplémentaires sur la fonction physique et les fonctions virtuelles associées.
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2]
Vous pouvez uniquement détruire une fonction virtuelle si elle n'est pas assignée à un domaine. La colonne DOMAIN de la sortie ldm list-io -l affiche le nom de tous les domaines auxquels une fonction virtuelle est affectée. De plus, les fonctions virtuelles doivent être détruites dans l'ordre inverse de leur création. Par conséquent, dans cet exemple, vous devez détruire la fonction virtuelle /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 avant de pouvoir détruire la fonction virtuelle /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0.
Après avoir identifié la fonction virtuelle appropriée, vous pouvez la détruire. Commencez par lancer une reconfiguration retardée.
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm destroy-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. -----------------------------------------------------------------------
Vous pouvez exécuter plusieurs commandes ldm destroy-vf dans le cadre d'une reconfiguration retardée. Par conséquent, vous pourriez également détruire la fonction virtuelle /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0.
Pour finir, réinitialisez le domaine root primary pour appliquer les modifications.
primary# shutdown -i6 -g0 -y Shutdown started. Changing to init state 6 - please wait ...