Força a renegociação da velocidade do link PCI Express? cartão x2 reverte para x1 largura

14

Em um esforço para contornar barreiras de compatibilidade e custo Para usar unidades SSD com servidores HP ProLiant Gen8 mais recentes, estou trabalhando para validar SSDs baseados em PCIe na plataforma. Eu tenho experimentado com um produto interessante de Other World Computing chamado de Accelsior E2 .

Este é um projeto básico; uma placa PCIe com um controlador Marvell 6Gbps SATA RAID e dois "blades" SSD conectados ao cartão. Estes podem ser passados para o sistema operacional para software RAID ( ZFS , por exemplo) ou aproveitados como uma faixa de hardware RAID0 ou RAID1 par espelhado. Bacana. É realmente apenas compactar um controlador e discos em um tamanho muito pequeno.

O problema:

Olhe para esse conector PCIe. Essa é uma interface PCie x2 . os tamanhos dos slots / pistas PCIe são normalmente x1, x4, x8 e x16 , com conexões elétricas geralmente sendo x1, x4, x8 e x16. Isso é bom. Eu usei x1 cartões nos servidores antes.

Comecei a testar o desempenho dessa placa em um sistema inicializado e descobri que as velocidades de leitura / gravação foram reduzidas para ~ 410 MB / s, independentemente da configuração do servidor / slot / BIOS. Os servidores em uso eram os sistemas HP ProLiant G6, G7 e Gen8 (Nehalem, Westmere e Sandy Bridge) com slots PCIe x4 e x8. Observar o BIOS da placa mostrou que o dispositivo negociou: PCIe 2.0 5.0Gbps x1 - Por isso, está usando apenas uma pista PCIe em vez de duas, portanto, apenas metade da largura de banda anunciada está disponível.

Existe alguma maneira de forçar um dispositivo PCIe a ser executado em uma velocidade diferente?

Minha pesquisa mostra que o PCIe x2 é um pouco estranho ... O padrão PCI Express aparentemente não requer compatibilidade com larguras de pista x2 , então meu palpite é que os controladores em meus servidores estão voltando para x1 ... Eu tenho algum recurso?

Saída abreviada de lspci -vvv . Observe a diferença entre as linhas LnkSta e 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
    
por ewwhite 20.11.2013 / 15:28

3 respostas

2

Tentei isso novamente em uma plataforma HP um pouco diferente, o HP ProLiant DL380p Gen8 de 2U versus o 1U DL360p Gen8. Recebi os resultados adequados usando essa combinação de hardware.

O atual firmware do host Gen8 agora permite que os links PCIe negociem nas velocidades adequadas, portanto, esses dispositivos SÃO compatíveis com os servidores 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-
    
por 04.12.2013 / 19:57
6

Essa é a resposta oficial do OWS, agora outra resposta se for possível forçar o controlador hp a aumentar para x2 de largura, o que exigirá mais pesquisas. -)

    
por 20.11.2013 / 16:53
0

Tenho em mãos um servidor IBM com uma placa Broadcom 4 × 1GbE… negociado de 2.0x4 para 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-

Ele tinha um conector x4 que eu estou adivinhando só é totalmente usado quando colocado em um slot PCIe v1, então parece que está negociando até x2 quando usado em um slot PCIe v2 (desde 5GT / s bidirecional é suficiente para 4 × 1GbE).

Poderia a mesma coisa acontecer com o seu cartão?

(se não, minha resposta é: use IBM em vez de HP: P)

    
por 20.11.2013 / 16:21