ajmy
Contributor
Contributor

What is the ESXi command to obtain PCI information like DevSta,LnkCap

Jump to solution

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!!!

0 Kudos
1 Solution

Accepted Solutions
NealeC
Hot Shot
Hot Shot

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*

😉

-------------- If you found this or any other answer useful please consider the use of the Helpful or Correct buttons to award points. Chris Neale VCIX6-NV;vExpert2014-17;VCP6-NV;VCP5-DCV;VCP4;VCA-NV;VCA-DCV;VTSP2015;VTSP5;VTSP4 http://www.chrisneale.org http://www.twitter.com/mrcneale

View solution in original post

0 Kudos
11 Replies
NealeC
Hot Shot
Hot Shot

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

-------------- If you found this or any other answer useful please consider the use of the Helpful or Correct buttons to award points. Chris Neale VCIX6-NV;vExpert2014-17;VCP6-NV;VCP5-DCV;VCP4;VCA-NV;VCA-DCV;VTSP2015;VTSP5;VTSP4 http://www.chrisneale.org http://www.twitter.com/mrcneale
0 Kudos
ajmy
Contributor
Contributor

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!!!

0 Kudos
NealeC
Hot Shot
Hot Shot

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

-------------- If you found this or any other answer useful please consider the use of the Helpful or Correct buttons to award points. Chris Neale VCIX6-NV;vExpert2014-17;VCP6-NV;VCP5-DCV;VCP4;VCA-NV;VCA-DCV;VTSP2015;VTSP5;VTSP4 http://www.chrisneale.org http://www.twitter.com/mrcneale
MKguy
Virtuoso
Virtuoso

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.

-- http://alpacapowered.wordpress.com
ajmy
Contributor
Contributor

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.

0 Kudos
NealeC
Hot Shot
Hot Shot

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*

😉

-------------- If you found this or any other answer useful please consider the use of the Helpful or Correct buttons to award points. Chris Neale VCIX6-NV;vExpert2014-17;VCP6-NV;VCP5-DCV;VCP4;VCA-NV;VCA-DCV;VTSP2015;VTSP5;VTSP4 http://www.chrisneale.org http://www.twitter.com/mrcneale
0 Kudos
MKguy
Virtuoso
Virtuoso

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.

-- http://alpacapowered.wordpress.com
0 Kudos
ajmy
Contributor
Contributor

Got it!!!

Thanks a ton for your responses. It was really helpful Smiley Happy

0 Kudos
NealeC
Hot Shot
Hot Shot

Good news! 🙂

Please mark any helpful correct answers that you think helped.

Cheers

Chris    

-------------- If you found this or any other answer useful please consider the use of the Helpful or Correct buttons to award points. Chris Neale VCIX6-NV;vExpert2014-17;VCP6-NV;VCP5-DCV;VCP4;VCA-NV;VCA-DCV;VTSP2015;VTSP5;VTSP4 http://www.chrisneale.org http://www.twitter.com/mrcneale
0 Kudos
madarasvlad
Contributor
Contributor

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

http://www.thevirtualist.org/

0 Kudos
ArildS
Contributor
Contributor

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

0 Kudos