This article provides information on how to determine PCI-E bus speed of a PCI-E card in a RedHat based Linux distribution.
How to determine PCI-E bus speed of a PCI-E card such as a Dell SAS 6G or Dell SAS 5/e without running a DSET report.
The general concept here is that we need to first determine the bus address of the device in question. The device below we are looking for is a Dell SAS 6g which is produced by LSI.
Note: The follow commands should be native to RedHat based system and should be able to be run from anywhere. The command IS case sensitive. You may have to follow the commands with > filename.txt to output the text to a file for review. I.E. lspci > filename.txt
First lets figure out what the bus address of the device in question is by running command lspci
We can see a LSI RAID controller however the SAS 6g is not a raid controller so that is the incorrect device. The only other lsi device is listed as having a bus address "04:00.0"
Note: We can also see other devices like an Intel 82599EB 10 gig NIC listed. You can see both ports on this dual port NIC via it's LUN ID of .0 or .1
At this point we have two options:
run command lspci -nv and search within it for our bus address, in this case "04:00.0"
Note: We can see the "LnkCap" with a "Width x8" and a "LnkSta" with a "Width x8" from this we can see the device has a negotiated speed of 8x.
or we could run command dmidecode and search within it for our bus address, in this case "04:00.0"
Note: We can see under "Designation" that the slot type accepts x16,x8, or x4. From the "Type" we can see the length of the slot as being x16.