Wymuszać renegocjację szybkości łącza PCI Express? Karta x2 powraca do szerokości x1

15

W celu ominięcia kompatybilności i barier kosztów korzystania z dysków SSD z nowszymi serwerami HP ProLiant Gen8 pracuję nad weryfikacją dysków SSD opartych na PCIe na platformie. Eksperymentowałem z ciekawym produktem firmy Other World Computing o nazwie Accelsior E2 .

wprowadź opis zdjęcia tutaj

To jest podstawowy projekt; karta PCIe z kontrolerem SATA RAID Marvell 6 Gb / s i dwoma „ostrzami” SSD podłączonymi do karty. Można je przekazać do systemu operacyjnego w celu uzyskania oprogramowania RAID ( na przykład ZFS ) lub wykorzystać jako sprzętowy pasek RAID0 lub parę kopii lustrzanych RAID1. Fajne To tak naprawdę tylko kompaktowanie kontrolera i dysków w naprawdę małym formacie.

Problem:

Spójrz na to złącze PCIe. To interfejs PCie x2 . Fizyczne rozmiary gniazd / linii PCIe to zwykle x1, x4, x8 i x16 , przy czym połączenia elektryczne to zwykle x1, x4, x8 i x16. W porządku. Wcześniej używałem kart x1 na serwerach.

Zacząłem testować wydajność tej karty w uruchomionym systemie i odkryłem, że prędkości odczytu / zapisu spadły do ​​~ 410 MB / s, niezależnie od konfiguracji serwera / gniazda / BIOS. Wykorzystywane serwery to systemy HP ProLiant G6, G7 i Gen8 (Nehalem, Westmere i Sandy Bridge) z gniazdami PCIe x4 i x8. Patrząc na BIOS karty, okazało się, że urządzenie negocjowało: PCIe 2.0 5.0Gbps x1- Więc używa tylko jednego toru PCIe zamiast dwóch, więc dostępna jest tylko połowa reklamowanego pasma.

Czy istnieje sposób, aby zmusić urządzenie PCIe do pracy z inną prędkością?

Moje badania pokazują, że PCIe x2 jest trochę dziwną szerokością linii ... Standard PCI Express najwyraźniej nie wymaga kompatybilności z szerokością linii x2 , więc domyślam się, że kontrolery na moich serwerach spadają do x1 ... Mam jakieś regres?


Skrócone lspci -vvvwyjście. Zwróć uwagę na różnicę między wierszami LnkStai 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
źródło
Zakładam, że wkładasz kartę do gniazda x4, prawda? W każdym razie nie jestem pewien, jak HP poradzi sobie z kartą x2. W gnieździe x4 powinno być możliwe korzystanie z obu linii, ale, jak wspomniałeś, nie ma gwarancji, że będzie z niego korzystać. Biorąc to wszystko pod uwagę, nie jestem pewien, jak duży spadek wydajności możesz zobaczyć, ponieważ SATA 6 Gb / s nadal jest ogólnie postrzegane jako ograniczone do maksymalnie 4,8 Gb / s przy narzutu kodowania z pojedynczym pasmem PCIe o przepustowości maks. 5 gbs.
Rex,
@Rex Wypróbowano gniazda xe i x8 PCIe” . Karta ma dwa dyskretne dyski SSD SATA 6 Gb / s na pokładzie, więc istnieje możliwość zmniejszenia prędkości raz / jeśli negocjowane jest PCIe x2.
ewwhite
Ah .. brakowało x4 / x8 szczeliny w pytaniu, ale trzeba powiedzieć „karty PCIe z pomocą kontrolera RAID Marvell SATA 6Gbps” oznaczający pojedynczy kontroler :) Jeśli to ma dwa oddzielne kontrolery, każdy jest podłączony do SSD swój własny kontroler? W jaki sposób może to zrobić sprzętowa macierz RAID na dwóch różnych kontrolerach?
Rex,
@ Rex Do jednego kontrolera podłączone są dwa dyski SSD. Kontroler RAID 6 Gb / s ma przepustowość 6 Gb / s na linię SAS / SATA.
ewwhite
Specyfikacja PCIe nie wymaga, aby gniazda obsługiwały cokolwiek oprócz 1x. Gdy karta jest włożona, host pyta ją o wsparcie linii i niezależnie od tego, jaka jest najwyższa z dwóch potęg, używana jest zarówno obsługa (tak 1x, 2x, 4x, 8x, 16x lub 32x). Ponadto każdy tor na punkcie końcowym (host lub karta) może obsługiwać początkowe negocjacje, ale zazwyczaj robi to tylko pierwszy tor (gdy dodatkowe linie obsługują negocjacje, gniazdo będzie w stanie rozgałęzić się, podłączając więcej niż jedną kartę za pomocą rozdzielacza ). Jak zauważono poniżej, omawiane serwery nie obsługują trybu 2x linii.
Chris S,

Odpowiedzi:

6

To oficjalna odpowiedź OWS, teraz kolejna odpowiedź, jeśli można zmusić kontroler hp do zwiększenia go do szerokości x2, co będzie wymagało dalszych badań. -)

wprowadź opis zdjęcia tutaj

Danila Ladner
źródło
Ale karta jest w tej chwili w G6 ProLiantManufacturer: HP Product Name: ProLiant DL180 G6
ewwhite
Racja, prawdopodobnie wszystkie kontrolery pci Proliant DL będą miały problem z kartą.
Danila Ladner,
Spójrz na siebie, idź do źródła !!
ewwhite
Również na Gen7, Gen8 dla pierwszego gniazda na pcie riser zawsze otrzyma 1x: 1 PCIe 2.0 X1 X4 Połowa długości / pełna wysokość stąd: h18000.www1.hp.com/products/quickspecs/14339_na/14339_na.pdf Zakładam, że próbowałeś różne automaty.
Danila Ladner,
2

Próbowałem tego ponownie na nieco innej platformie HP, 2U HP ProLiant DL380p Gen8 w porównaniu do 1U DL360p Gen8. Odpowiednie wyniki uzyskałem przy użyciu tej kombinacji sprzętu.

Obecne oprogramowanie wewnętrzne hosta Gen8 umożliwia teraz negocjowanie łączy PCIe z odpowiednią prędkością, więc urządzenia te są kompatybilne z serwerami 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
źródło
0

Mam pod ręką serwer IBM z kartą Broadcom 4 × 1GbE… negocjowany w dół z 2.0x4 do 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-

Miał złącze x4 których jestem zgadywania jest jedynym w pełni wykorzystane, gdy umieścić w gnieździe PCIe v1, więc wydaje się, że to negocjacje w dół do x2 użyte w gnieździe PCIe v2 (od 5GT / s dwukierunkowy wystarcza na 4 × 1GbE ).

Czy to samo może się dziać z twoją kartą?

(Jeśli nie, moja odpowiedź brzmi: użyj IBM zamiast HP: P)

MikeyB
źródło
1
Brak IBM !!! Nigdy;)
ewwhite