Hi
On ESX5.5, I executed the command "lspci -vvv" to obtain PCI details like DevSta,LnkSta and other info. But it is not showing up.
Let me know the command to fetch PCI details like DevSta,LnkSta.
Few links in google showed "lspci -vvv" output as below. But I am not able to get those on ESX50/ESX55. Is there any other command?
Sample PCI details:
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 5GT/s, Width x32, ASPM L0s, Latency L0 <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x32, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-
Thanks!!!
One thing to watch is if you upgrade the virtual hardware. This can change the PCI bus order in the VM to change.
It's a different issue but sometimes when you upgrade virtual hardware on a windows VM the network settings are lost as windows detects it as a new card in a new slot after the upgrade.
*one to watch*
😉
As you probably found with your google this KB states that the command you are trying is applicable to ESXi5.5
VMware KB: Confirming ESX/ESXi host hardware (System, Storage, and I/O) compatibility
What is the error you are getting when you run the command?
Can you post a screenshot? (sanitised if necessary)
Regards
Chris
Hi Chris,
Thanks for your response.
I visited that link before and like you said, the command is applicable to ESXi5.5, But the output of the command is not displaying detailed information.(like DevSta,LnkCap..)
I am not seeing any error. The command output is successful. Pasting the command output below:
0000:00:01.1 Host bridge Bridge: Intel Corporation Ivytown DMI2 [PCIe RP[0000:00:01.10]]
Class 0500: 7086:0e10
0000:00:02.2 PCI bridge Bridge: Intel Corporation Ivytown PCI Express Root Port 1b [PCIe RP[0000:00:02.2]]
Class 0504: 7086:0f03
0000:ff:16.1 System peripheral Generic system peripheral: Intel Corporation Ivytown Broadcast Registers
Class 0880: 8086:0ec1
...
0000:ff:16.2 System peripheral Generic system peripheral: Intel Corporation Ivytown Broadcast Registers
Class 0540: 8086:0aec
On ESXi, I need more details on PCI device, Sample links showing details PCIe info:
- OpenBenchmarking.org - ESXi SSD - lspci
-http://www.fi.muni.cz/~xslaby/asus_f2je/lspci
Thanks!!!
Hmm, I think that because ESXi is a cut down smaller footprint that the old ESX RHLES based kernel you may not get all the detail you are looking for.
I can think of one workaround (although if this is a production system it may not be desirable)
If you can reboot the host (after vmotioning off any VMs)
and mount a bootable Linux ISO then you could query with a full-fat pukka version of lspci
Obviously as I say the caveats around that are whether the host is ok to be rebooted and if you have access/permission to mount an iso/usb to boot from and taking great care to make sure it's a live-boot style only and doesn't write to your boot disk.
Good Luck
You can access some advanced PCI device information with the command esxcli hardware pci list:
# esxcli hardware pci list
000:013:00.0
Address: 000:013:00.0
Segment: 0x0000
Bus: 0x13
Slot: 0x00
Function: 0x00
VMkernel Name: vmhba2
Vendor Name: QLogic Corp
Device Name: ISP2432-based 4Gb Fibre Channel to PCI Express HBA
Configured Owner: Unknown
Current Owner: VMkernel
Vendor ID: 0x1077
Device ID: 0x2432
SubVendor ID: 0x103c
SubDevice ID: 0x7040
Device Class: 0x0c04
Device Class Name: Fibre Channel
Programming Interface: 0x00
Revision ID: 0x02
Interrupt Line: 0x07
IRQ: 7
Interrupt Vector: 0x33
PCI Pin: 0x08
Spawned Bus: 0x00
Flags: 0x0201
Module ID: 17
Module Name: qlnativefc
Chassis: 0
Physical Slot: 2
Slot Description: Chassis slot 2.00
Passthru Capable: false
Parent Device: PCI 0:0:4:0
Dependent Device: PCI 0:19:0:0
Reset Method: Link reset
FPT Sharable: false
The command esxcfg-info -a provides some more detailed information as well.
However both methods are mainly for information about the device itself and not the bus properties you seem to be looking for.
I don't think there is a command on the ESXi shell that allows you to retrieve that information. The /proc nodes I've looked at don't seem very promising either.
If you just want to retrieve that info you could boot a live Linux on your server. The PCI bus properties should be the same independent of the OS running.
Thanks for your prompt response.
I tried PCI passthu device to a Linux VM and ran the command "lspci -vvv" from the guest. It showed the DevSta and other detailed info about the PCI.
I have a doubt, Will the PCI bus properties remain the same if I passthru PCI device? I was thinking PCI bus properties might change if device is in passthru mode.
One thing to watch is if you upgrade the virtual hardware. This can change the PCI bus order in the VM to change.
It's a different issue but sometimes when you upgrade virtual hardware on a windows VM the network settings are lost as windows detects it as a new card in a new slot after the upgrade.
*one to watch*
😉
I have a doubt, Will the PCI bus properties remain the same if I passthru PCI device? I was thinking PCI bus properties might change if device is in passthru mode.
That's certainly possible. The PCI bus properties presented to the guest VM might be abstracted to the virtual hardware and not identical to the actual physical PCI bus on the host, even with passthru, which works more at the PCI device level.
The only way to be sure would be booting a live Linux and comparing the info.
Got it!!!
Thanks a ton for your responses. It was really helpful
Good news! 🙂
Please mark any helpful correct answers that you think helped.
Cheers
Chris
First of all thank you for your post.
I would like to share a command that took me and a very skilled Unix admin quite some time and I really think will be useful:
In order to parse and list in a readable form the info needed; to output the results in a nice overview try the command below:
~ # esxcli hardware pci list | grep -E "^ *$|Address|VMkernel|Vendor|Slot|Name" | cut -f2- -d: | sed -e "s/^ *\(.*\)$/\"\1,\"/" | xargs -n 13 echo
Results will come similar with below
000:00e:00.0, 0x00, vmhba4, QLogic Corp, ISP2532-based 8Gb Fibre Channel to PCI Express HBA, VMkernel, 0x1077, 0x1077, Fibre Channel, qlnativefc, 5, Node 1 PCI-Express Slot 5, ,
000:00e:00.1, 0x00, vmhba5, QLogic Corp, ISP2532-based 8Gb Fibre Channel to PCI Express HBA, VMkernel, 0x1077, 0x1077, Fibre Channel, qlnativefc, 5, Node 1 PCI-Express Slot 5, ,
000:013:00.0, 0x00, vmnic10, Intel Corporation, 82580 Gigabit Network Connection, VMkernel, 0x8086, 0x8086, Ethernet controller, igb, 6, Node 1 PCI-Express Slot 6, ,
000:013:00.1, 0x00, vmnic11, Intel Corporation, 82580 Gigabit Network Connection, VMkernel, 0x8086, 0x8086, Ethernet controller, igb, 6, Node 1 PCI-Express Slot 6, ,
to grab just the headers:
~ # esxcli hardware pci list | grep -E "^ *$|Address|VMkernel|Vendor|Slot|Name" | cut -f1 -d: | sed -e "s/^ *\(.*\)$/\"\1,\"/" | xargs -n 13 echo
Results should appear repeatedly but this is needed to verify the data you just queried:
Address, Slot, VMkernel Name, Vendor Name, Device Name, Current Owner, Vendor ID, SubVendor ID, Device Class Name, Module Name, Physical Slot, Slot Description, ,
I hope you find it useful.
Vlad Madaras
VCP4 VCP5
Hi
Sorry for cluttering an old thread, but there is more that need be said and perhaps this may help some others out there.
I used a Debian Live CD and ran these commands to help me find PCIe detailed information like LinkSta (5GTs 8x lanes etc).
Shows only LnKSta information for every PCIe device liek 5GTs 8x lanes:
lspci -vv | grep -P "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9a-f]|LnkSta:"
Shows all lines with X710 in it and the following 30 lines after that:
lspci -vv | grep -P -A 30 "X710" | more