Understanding dmidecode PCI-E slot “type” values (.e.g “x8 PCI Express 3 x16”)

CptSupermrkt

Reputable
Apr 12, 2014
9
0
4,510
Hey there. Relatively new here, getting sick of the toxic/superior attitudes over at StackExchange. Hopefully someone can help me understand the question below without yelling at me/biting my head off:

When I run "dmidecode -t slot" from Linux to see what my PCI-E slot availability is, I see some slots which read:

Code:
Type: x16 PCI Express 3

Which makes sense to me. Cool, that's a PCI-E slot that supports x16. Got it.

But some of them read:

Code:
Type: x8 PCI Express 3 x16

So is that slot x8? Or x16? What does it mean, exactly, for a type to have both "x8" and "x16" in the description?

For what it's worth, I'm looking to add a GPU which reads in it's manual that it requires "Motherboard Connection PCI Express 3.0 x16".
 
Some PCIe slots are physically x16 and have x16 lanes.
Some PCIe slots are physically x16 and have x8 lanes. This is likely what that command result is describing.
Some PCIe slots are physically x16 and have x4 lanes.

Typically, the top PCIe x16 slot has x16 lanes, and is specifically used for GPUs.

Rather than resorting to using Linux commands, you could just tell us what board you have and we could tell you for sure what you have for PCIe slots.
 

CptSupermrkt

Reputable
Apr 12, 2014
9
0
4,510


Thanks. The particular machine in question is a Dell PowerEdge R730, which has 6 PCI-E slots. All "x16 PCI Express 3" slots are already in use. I'm interested to know what can go into the "x8 PCI Express 3 x16" slots.

But I'd like to know specifically what the output of "dmidecode -t slot" means, because we have a whole variety of servers with varying motherboards, and if we get a new GPU to stick in somewhere, I'd like to quickly run "dmidecode -t slot" on all servers and be able to identify possible candidates. Will a GPU that requires "x16" work in a slot that is identified as "x8 PCI Express x16", for example? Will it work with degraded performance because it's at 8 lanes even though it's physically x16? There are multiple considerations to adding a new GPU to a server, such as power availability, but at a bare minimum I'd like to quickly be able to narrow down the potential list based on PCI-E slot availability first.

I'm not particularly dedicated to "dmidecode" --- if there is some other command that can be run from a shell which might provide more illuminating information on PCI-E availability, I'll gladly give it a try.