强制重新协商PCI Express链接速度?x2卡恢复为x1宽度


15

为了避免在新的HP ProLiant Gen8服务器上使用SSD驱动器的兼容性和成本障碍,我正在努力验证平台上基于PCIe的SSD。我一直在尝试其他世界计算机公司的一种有趣的产品,称为Accelsior E2

在此处输入图片说明

这是基本设计;带有Marvell 6Gbps SATA RAID控制器和连接到该卡的两个SSD“刀片” 的PCIe 卡。可以将它们传递到操作系统以进行软件RAID(例如ZFS),也可以将其用作硬件RAID0条带或RAID1镜像对。好漂亮 它实际上只是将控制器和磁盘压缩为非常小的外形。

问题:

查看该PCIe连接器。那是一个PCie x2接口。物理PCIe插槽/通道大小通常为x1,x4,x8和x16,电气连接通常为x1,x4,x8和x16。没关系。我以前在服务器中使用过x1卡

我开始在引导的系统上测试该卡的性能,发现无论服务器/插槽/ BIOS配置如何,读/写速度都可降至约410 MB / s。使用的服务器是具有x4和x8 PCIe插槽的HP ProLiant G6,G7和Gen8(Nehalem,Westmere和Sandy Bridge)系统。查看卡的BIOS显示设备进行了协商:PCIe 2.0 5.0Gbps x1-因此,它仅使用一个PCIe通道而不是两个,因此只有一半的广告带宽可用。

有什么方法可以强制PCIe设备以不同的速度运行?

我的研究表明,PCIe x2有点怪异的通道宽度... PCI Express标准显然不需要与x2通道宽度兼容,因此我的猜测是服务器上的控制器回落到x1 ...我有追索权吗?


缩写的lspci -vvv输出。注意之间的差异LnkStaLnkCap线条。

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

我假设您将卡放入x4插槽中,对吗?无论如何,我不确定HP将如何处理x2卡。在x4插槽中,它应该能够同时使用两个通道,但是,正如您提到的,不能保证它必须使用它。话虽这么说,我不确定您可能会看到多少性能提升,因为通常仍认为6gbs SATA的最大吞吐量为4.8 gb / s,而单个PCIe通道具有吞吐量的编码开销最高5GB。
Rex

尝试了@Rex “ x4和x8 PCIe插槽”。该卡具有板载两个离散的6Gbps SATA SSD,因此一旦协商了PCIe x2,就会有速度障碍。
ewwhite

啊..错过了问题的X4 / X8插槽,但你说的“PCIe卡与一个 Marvell的SATA 6Gbps的RAID控制器”意味着单个控制器:)如果它有两个独立的控制器,在每个SSD连接到它自己的控制?那么,如何在两个不同的控制器之间进行硬件RAID?
Rex

@Rex有两个SSD连接到一个控制器。每个SAS / SATA通道6Gbps RAID控制器具有6Gbps带宽。
ewwhite

PCIe规范不需要插槽支持除1x以外的任何格式。插入卡后,主机会向其查询通道支持,以及使用两个都支持的最高功率(即1x,2x,4x,8x,16x或32x)。同样,端点(主机或卡)上的每个通道可能支持初始协商,但通常仅第一个通道支持(当其他通道支持协商时,插槽将能够分叉,通过使用分离器插入多个卡)。如下所述,所讨论的服务器不支持2x通道模式。
克里斯·S

Answers:


6

这是OWS的官方答案,如果可以将hp控制器强制提升到x2宽度,则是另一个答案,这需要更多的研究。-)

在此处输入图片说明


但是该卡目前处于G6 ProLiant中Manufacturer: HP Product Name: ProLiant DL180 G6
ewwhite

是的,很可能所有Proliant DL pci控制器都会出现卡问题。
Danila Ladner

看你,去源头!!
ewwhite

同样在Gen7上,PCIe Riser卡上第一个插槽的Gen8将始终获得1x:1 PCIe 2.0 X1 X4 Half Length / Full Height from here:h18000.www1.hp.com/products/quickspecs/14339_na/14339_na.pdf我假设您尝试过不同的插槽。
Danila Ladner

2

我在稍有不同的HP平台(2U HP ProLiant DL380p Gen8与1U DL360p Gen8)上再次尝试了此操作。使用这种硬件组合,我收到了正确的结果

现在,当前的Gen8主机固件允许PCIe链接以适当的速度进行协商,因此这些设备与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-

0

我手头有一台IBM服务器,其中装有Broadcom 4×1GbE卡……从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-

它有一个x4连接器,我猜测只有在将其插入PCIe v1插槽时才能完全使用,因此,似乎在PCIe v2插槽中使用时它正在协商降至x2(因为双向5GT / s足以满足4×1GbE )。

您的卡可能会发生同样的事情吗?

(如果没有,我的答案是:使用IBM而不是HP:P)


1
没有IBM!永不;)
ewwhite
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.