Forcer la renégociation de la vitesse de liaison PCI Express? La carte x2 revient à la largeur x1

15

Dans un effort pour contourner la compatibilité et les barrières de coûts à l'utilisation des disques SSD avec les serveurs HP ProLiant Gen8 plus récents, je travaille à valider les SSD PCIe sur la plate-forme. J'expérimente avec un produit intéressant de Other World Computing appelé Accelsior E2 .

entrez la description de l'image ici

Ceci est une conception de base; une carte PCIe avec un contrôleur RAID SATA Marvell 6 Gbps et deux "lames" SSD connectées à la carte. Ceux-ci peuvent être transmis au système d'exploitation pour le RAID logiciel ( ZFS , par exemple) ou exploités en tant que bande matérielle RAID0 ou paire miroir RAID1. Nifty. Il s'agit simplement de compacter un contrôleur et des disques dans un très petit format.

Le problème:

Regardez ce connecteur PCIe. C'est une interface PCie x2 . Les tailles des emplacements / voies PCIe physiques sont généralement x1, x4, x8 et x16 , les connexions électriques étant généralement x1, x4, x8 et x16. C'est très bien. J'ai déjà utilisé des cartes x1 dans des serveurs.

J'ai commencé à tester les performances de cette carte sur un système démarré et j'ai découvert que les vitesses de lecture / écriture étaient limitées à ~ 410 Mo / s, quelle que soit la configuration du serveur / emplacement / BIOS. Les serveurs utilisés étaient des systèmes HP ProLiant G6, G7 et Gen8 (Nehalem, Westmere et Sandy Bridge) avec des emplacements PCIe x4 et x8. L'examen du BIOS de la carte a montré que le périphérique a négocié: PCIe 2.0 5.0Gbps x1- Donc, il n'utilise qu'une seule voie PCIe au lieu de deux, donc seulement la moitié de la bande passante annoncée est disponible.

Existe-t-il un moyen de forcer un périphérique PCIe à fonctionner à une vitesse différente?

Ma recherche montre que PCIe x2 est un peu une largeur de voie bizarre ... La norme PCI Express ne nécessite apparemment pas de compatibilité avec les largeurs de voie x2 , donc je suppose que les contrôleurs sur mes serveurs retombent à x1 ... Do J'ai un recours?


lspci -vvvSortie abrégée . Notez la différence entre les lignes LnkStaet LnkCap.

05:00.0 SATA controller: Marvell Technology Group Ltd. Device 9230 (rev 10) (prog-if 01 [AHCI 1.0])
        Subsystem: Marvell Technology Group Ltd. Device 9230
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
                LnkCap: Port #0, Speed 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
        Kernel driver in use: ahci
        Kernel modules: ahci
ewwhite
la source
Je suppose que vous mettez la carte dans un emplacement x4, non? En tout cas, je ne sais pas comment le HP va gérer la carte x2. Dans un emplacement x4, il devrait pouvoir utiliser les deux voies mais, comme vous l'avez mentionné, il n'y a aucune garantie qu'il doive l'utiliser. Cela étant dit, je ne suis pas sûr de l'ampleur des performances que vous pourriez constater, car le SATA 6 Go est toujours généralement considéré comme limité à un maximum de 4,8 Go / s avec le surcoût d'encodage avec une seule voie PCIe ayant un débit max de 5 gbs.
Rex
@Rex " Emplacements PCIe x4 et x8" ont été essayés. La carte dispose de deux SSD SATA discrets de 6 Gbit / s, donc il y a un ralentissement disponible une fois / si PCIe x2 est négocié.
ewwhite
Ah .. manqué les emplacements x4 / x8 dans la question, mais vous dites "carte PCIe avec un contrôleur RAID SATA Marvell 6 Gbps" impliquant un seul contrôleur :) S'il a deux contrôleurs discrets, chaque SSD est-il connecté à son propre contrôleur? Alors, comment peut-il faire du RAID matériel sur les deux contrôleurs différents?
Rex
@Rex Deux SSD sont connectés à un contrôleur. Un contrôleur RAID 6 Gbit / s a ​​une bande passante de 6 Gbit / s par voie SAS / SATA.
ewwhite
La spécification PCIe n'exige pas que les emplacements prennent en charge quoi que ce soit, sauf 1x. Lorsqu'une carte est insérée, l'hôte l'interroge pour la prise en charge des voies, et quelle que soit la puissance la plus élevée de deux que les deux prennent en charge (donc 1x, 2x, 4x, 8x, 16x ou 32x). En outre, chaque voie d'un point de terminaison (hôte ou carte) peut prendre en charge la négociation initiale, mais généralement seule la première voie le fait (lorsque des voies supplémentaires prennent en charge la négociation, l'emplacement sera capable de bifurcation, en connectant plus d'une carte via l'utilisation d'un séparateur ). Comme indiqué ci-dessous, les serveurs en question ne prennent pas en charge le mode 2x voies.
Chris S

Réponses:

6

C'est la réponse officielle de OWS, maintenant une autre réponse s'il est possible de forcer le contrôleur hp à une largeur x2, ce qui nécessitera des recherches supplémentaires. -)

entrez la description de l'image ici

Danila Ladner
la source
Mais la carte est actuellement dans un G6 ProLiant -Manufacturer: HP Product Name: ProLiant DL180 G6
ewwhite
Bon, probablement tous les contrôleurs PCI Proliant DL auront un problème avec la carte.
Danila Ladner
Regardez-vous, allez à la source !!
ewwhite
Également sur Gen7, Gen8 pour le premier emplacement sur la carte de montage PCie obtiendra toujours 1x: 1 PCIe 2.0 X1 X4 demi-longueur / pleine hauteur à partir d'ici: h18000.www1.hp.com/products/quickspecs/14339_na/14339_na.pdf Je suppose que vous avez essayé différents emplacements.
Danila Ladner
2

J'ai essayé à nouveau sur une plate-forme HP légèrement différente, le 2U HP ProLiant DL380p Gen8 par rapport au 1U DL360p Gen8. J'ai reçu les bons résultats en utilisant cette combinaison de matériel.

Le firmware actuel de l'hôte Gen8 permet désormais aux liaisons PCIe de négocier à la bonne vitesse, de sorte que ces périphériques SONT compatibles avec les serveurs ProLiant DL380p Gen8.

Speed 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
ewwhite
la source
0

J'ai en main un serveur IBM avec une carte Broadcom 4 × 1GbE dedans… négocié de 2.0x4 à 2.0x2:

0b:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 
Subsystem: IBM Device 03a9 
Capabilities: [ac] Express (v2) Endpoint, MSI 00
LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s L1, Latency L0 <2us, L1 <2us 
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

Il avait un connecteur x4 qui, je suppose, n'est pleinement utilisé que lorsqu'il est placé dans un slot PCIe v1, il semble donc qu'il négocie jusqu'à x2 lorsqu'il est utilisé dans un slot PCIe v2 (puisque 5GT / s bidirectionnel est suffisant pour 4 × 1GbE ).

La même chose pourrait-elle se produire avec votre carte?

(Sinon, ma réponse est: utilisez IBM au lieu de HP: P)

MikeyB
la source
1
Pas d'IBM !!! Jamais;)
ewwhite