A Neverending Story: PCIe 3.0/4.0/5.0 Bifurcation, Adapters, Switches, HBAs, Cables, NVMe Backplanes, Risers & Extensions - The Good, the Bad & the Ugly

Most people unfortunately don’t look for PCIe Bus Errors (picture lost packets from a network connection) or know what PCIe Advanced Error Reporting (AER) is or test that PCIe AER is actually working for the used PCIe lanes.

Up to a point the error correction can keep up without dropping the PCIe interface link from Gen4 to Gen3 for example (but the error correction is obviously eating up performance), depending on the platform this can lead to weird stability issues like stuttering of everything from the mouse cursor to audio, black screens and complete system crashes.

2 Likes

AMD gpu worked out of the box, but had issues with older nvidia and intel dgpus. Its jank but better than nothing.

(Winmax 2023 and parts from aliexpress)

I had the Broadcom card in my cart and was ready to play the firmware dance when I saw this post. I decided to give ATTO a call and ask about their two Gen 4 PCIe/NVMe switch models. I spoke first to Mike in sales then Fred in tech support and thoroughly enjoyed chatting with them as they seem to be a company of techies.

They did not disclose the core chip OEM, but it was hinted it was not Broadcom. They also said they test their cards with direct connection and have no plans to follow Broadcom in requiring UBM communication before recognizing downstream devices. Great news, IMO!

I asked about drivers and it sounds like the device will work out of the box with drivers that have been upstreamed in Linux kernels found in latest LTS versions of the major distros. Their propriety driver is required if you want to use their monitoring tools, however, they said the out-of-the-box kernel driver will expose the devices as NVMe nodes and the NVMe MI over SMBus communication should work (e.g. for formatting custom namespaces with nvme-cli). I did not get a chance to ask which vanilla kernel module would take responsibility for the device. I’m afraid I have 0 experience with NVMe in Windows so wouldn’t have known what to ask there.

Given all this, I’m going to evaluate the ATTO ExpressNVM S48F NVMe Switch Adapter for a project if I can find one. At this $1320 price point (+ cables), I can no longer say “m.2 NVMe looks cheaper than SATA these days”, at least not at scale.

6 Likes

Just to confirm, that means the card only works with NVMe SSDs and not other “neutral” PCIe devices?

I don’t have an answer. It’d be neat if it were a pure PCIe switch in this way, but my own exploration was driven by storage needs. The kernel module used or lspci tree may shed some light. If you’re curious, consider giving them a call during Americas hours. If I end up talking with them again, will ask for you.

In case anyone is curious, I have both the HighPoint 1108 (PCIE 3.0) and the 1508 (PCIE 4.0) 8x NVMe cards.

Both are running on an ASRock ROMED8-2T board. No need for bifurcation.

1108

Turns out the 1108 will not split each drive into its own IOMMU group, so I cannot passthrough any of the drives.

The card is listed as:

PLX Technology, Inc. PEX 8749 48-Lane, 18-Port PCI Express Gen 3 (8.0 GT/s) Multi-Root Switch with DMA

1508

This card appears as ‘Broadcom / LSI PEX880xx PCIe Gen 4 Switch (rev b0)’

It has no problem splitting each drive into its own IOMMU group, allowing pci-e passthrough

Hopes this helps someone…

9 Likes

I think you are right on this, the block diagram of the S48F shows it as a 52 port PCIe switch and Broadcom doesn’t make a COTS 52 port switch.

​​​ ​ ​
​​​ ​ ​

​​​ ​ ​
​​​ ​ ​
It looks like Apex is coming out with a new switch-based m.2 carrier card that no longer uses Broadcom chipsets:

Sabrent Apex X16 Rocket 5 Destroyer 64TB PCIe Gen5 Card Shown.

5 Likes

Couple thread notes:

  • Realtek has an RTL9101 PCIe 3.0 x2 to 9-port SATA controller pending. I get no search hits on the RTL9101 at the moment but presumably something will turn up in the next year or so.
  • I have Jeyi’s Wareship Pro armored JMB585 M.2 5-port SATA in test. Runs warm, increasing to hot as fewer drives are plugged in, but is mechanically preferable to ASM1166 equivalents.

I’ve benched the JMB585 out to five JBOD drives and where it seems to saturate at ~1.5 GB/s. Looks fine for 3.5 performance and passthrough but can’t recommend the 60+ °C heatsink temperatures. Voids packed with thermal putty I think the JMB585 on the Jeyi might be ok with five drives plugged in. But even then the no-name ASM1166 card I’m also evaluating is a good bit cooler. Absent an armored ASM1166 (or ASM1164), M.2 my preference would be to load balance drives across ASM1166 cards in x1, x2, and x4 slots plus chipset SATA ports.

1 Like

Dendryte. this thread is really long, so I’m sorry if this has been asked before.

What’s the recommended x16 to 4-port U.2 card that I should use to add Optane 905Ps using my x16 slot? I want to be able to install the SSD into the card without dealing with finding good cables. PCIe 4 support would be nice, but I only need PCIe 3 for now.

My Ryzen motherboard with Ryzen 5700G exposes x8/x4/x4 bifurcation, so I’ll be able to add 3 drives.

I see some recommendations for Delock adaptors, but I can’t seem to buy them from Amazon or Newegg.

1 Like

Who wants to be the first on this thread to test one of these?

C-Payne’s PCIe gen5 Switch 52-Lane Mircochip Switchtec PM50052 PLX

  • Features a Mircochip Switchtec PM50052 PCIe gen5 packet switch
  • 6 MCIO 8i PCIe gen5 connectors
  • 1 MCIO 4i PCIe gen5 connector
  • Default configuration:
    • gen5 x16 Uplink
    • 2* x16 + 1* x4 Downstream
    • ideal to connect two gen4 GPUs to a gen5 host with Full Speed to both GPUs and an auxiliary NVME
  • Can support a wide variety of configurations: different bifurcation settings, multiple partitions, multiple hosts, Non-Transparent Bridging
  • Can be flexibly configured via Software and 0 Ohm jumper resistors to support different configurations. Please contact us with your requirements.
  • 1 PCIe (GPU) Power connectors to supply 12V to the Switch (45W)
  • COFAN (USA) Fan with 70.000h MTBF
  • small footprint (80x100mm, 70mm mounting hole pitch)

Price: €1.250,00

7 Likes

Yummy.

BTW: Is there a tool to display the actual amount of data transferred per second over a specific PCIe connection no matter the type of connected PCIe device?

Has anyone seen anything on ASMedia or Promontory routing behavior between SATA ports and PCIe lanes? I’m going through a pile of measurements and there’s some things which hint at constraints on how drive transfers can flow across lanes. Could just be happenstance in the tests but I’m curious if there might be something structural behind it.

I’ve looked occasionally but haven’t had luck. From what I can infer it seems PCIe isn’t instrumented this way, just the endpoints.

Normie Pleb here recommended Delock 90077 in the past A Neverending Story: PCIe 3.0/4.0/5.0 Bifurcation, Adapters, Switches, HBAs, Cables, NVMe Backplanes, Risers & Extensions - The Good, the Bad & the Ugly - #268 by aBav.Normie-Pleb

I have successfully managed to buy Delock products from Reichelt in the past, as they ship internationally. Shipping isn’t the fastest but at least it did arrive. DELOCK 90077: PCIe x16 > 2x SFF-8654 > 4x SFF-8639, bifurcation buy at reichelt

1 Like

I finally was able to get some working parts after ordering a slew of items. In a previous comment here, I was trying to move some M.2 drives elsewhere in my case for cooling reasons (not a typical need found here I know) and had been using some ADT-Link cables that would fail within a month or two of successful working.

What I have ended up with is an M.2 to Oculink ReDriver, U.2 to M.2 adapter and a PCIE Gen4 rated Oculink to U.2 cable. The cable unfortunately is on the longer side at 50cm but I wasn’t able to find anything shorter in these connection types. The good news is this is the first set of hardware chain that seems to work at all in terms of getting the drive to show up in Windows and be able to be written and read from successfully.

What I now want to do is make sure I am not getting WHEA errors and be able to see the speed that is being negotiated by the drive and monitor that to make sure this is holding up and doing what I want it to in the long term. Can anyone point me to how I might be able to do that? I am having trouble trying to figure out what speed the drive is negotiating and any WHEA errors. Thanks to anyone who can point me in the right direction.

For reference this is the list of parts I purchased:

2 Likes

I have 2 Kioxia CM6-R that I put on a Supermicro H12SSL-i using two Delock PCI Express x4 Card to 1 x internal U.2 NVMe SFF-8639 - given some positive reviews about these adapter cards here and elsewhere.

However, I can only get PCIe 3.0 read speeds (~2.9GB/s) on both drives with this setup. I suspect it’s the cards (really because I don’t know what else it could be…) Or is there a something I might be missing? I don’t see any “PCIe Bus Error” in journalctl.

Now, since the board has a SlimSAS x8 NVME connector, I’m thinking about getting one of these two cables instead. They should be able to deliver PCIe 4.0 speeds, right? (I don’t have any experience with SAS and friends…)

Before you go out and buy more gear validate the connection speed of your drives.

As root for your Kioxia’s in the output of lspci -vv.
In the “Capabilities” section you should see a line like
LnkSta: Speed 16GT/s, Width x4 in case it’s connected via gen 4 speeds or
LnkSta: Speed 8GT/s, Width x4 in case it’s connected via gen 3 speeds.

In case of gen3 speeds identify all the devices between root and your Kioxia drives in this tree view: lspci -vt. Repeat the step from above and identify the first component that’s not running PCIe Gen4 speed.

Example:

root@host:~$ lspci -vt
-[0000:00]-±00.0 Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
±00.2 Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
±01.0 Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
±01.1-[01]----00.0 Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO
±01.2-[02-0a]----00.0-[03-0a]–±00.0-[04]----00.0 Mellanox Technologies MT27520 Family [ConnectX-3 Pro]
| ±01.0-[05]----00.0 Intel Corporation Optane SSD 900P Series
| ±02.0-[06]----00.0 Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
| ±03.0-[07]----00.0 Intel Corporation I211 Gigabit Network Connection
[…]
root@host:~$ lspci -vv | grep 01.1
00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge (prog-if 00 [Normal decode])

3 Likes

Hah, your right! For both drives, I get: LnkSta: Speed 16GT/s, Width x4

But why could the read speeds be so low then? I’m running the Gnome Disks Benchmark w/ 1GB sample size. It always jumps to 3.8GB/s and then quickly drops to 2.9GB/s…

The drives are rated for 6,900 MB/s

  1. Is PCIe AER working for the PCIe Slot the PCIe-to-U.2 AIC is installed in?

Error correction working overtime could be a possible explanation for lower useable drive speeds even if the interface link is correctly negotiated with PCIe Gen4 x4.

  1. Can you test the card in a different slot?

  2. Can you try booting Windows (SCNR) and do a CrystalDiskMark benchmark run on the drive?

5 Likes

Try running the same test with the PCIe slot forced (in BIOS) to gen 3. Is performance now consistent?
That would be another indicator for issues due to gen 4 signaling.

3 Likes

Definitely check for Gen 4, but I’ve also gotten massive quantities of AER log entries with dodgy Gen 3 adapters. (But you only really need to check if one of the components in your link were obtained from Amazon third party, eBay, or AliExpress. :wink:)

2 Likes