Monitoring PCI performance from software?

Monitoring PCI performance from software?

Portrait de David Cherkus


I am working on a driver performance issue and I could really use something like:

It's description says:

It pokes and prods counters in the root bridge chipsets
found in a system, parses the data, and produces a display showing utilization
as a percentage for each root bridge. Note that the tool does not show
bandwidth, just the ratio of use to the maximum use possible.

  • Measures
    PCI, PCI-X, and PCIe bus utilization.
  • Sampling
    interval can be set by the user.
  • Filters
    can be used to only display specific buses, based on slots, PCI domains,
    and PCI bus numbers.
  • Outputs
    useful PCI bus information.

And indeed it operates just like a version of the well known *ix 'top' utility, except it shows PCI stats instead of CPU stats.

Screen shot:

But the rub is:

1) Pcitop is currently only
supported on Linux on HP Itanium (IA-64)

running a kernel version of 2.6.16 or later. We hope to add

platforms later as vendors release the needed root bridge interface


So, does anyone know if Intel has a copy of this utility that works for current systems (ie nahalem, westmere and sandy bridge based xeon systems)?

Or is there any other similar tool or API to get this kind of info?



15 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Hussam Mousa (Intel)


The closest tool I can think of is the Performance Counter Monitorwhich will only collect events at the uncore level.

You can review Table 19.8 in:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide, Part 2

For available uncore events that might help your PCI level analysis.
I am persoallyunaware of other tools that will replicate the pcitop functionality on x86.


Portrait de Roman Dementiev (Intel)


Intel Xeon Processor E5-2600 Series (previously codenamed "Sandy Bridge-EP") has a monitoring device to monitor ring and IIO traffic from/to PCIe. It is documented here (see section 2.8 - R2PCIe Performance Monitoring).


Portrait de Sergey Kostrov
Quoting David Cherkus ...Or is there any other similar tool or API to get this kind of info?...

WMI should provide that information and please take a look atCIM_Controller or CIM_PCIController classes.

Best regards,

Portrait de alextui

why don't you use Intel PCM, is it not enough for monitoring?

Acoolme :Anybody Can Be Your Marketer
Portrait de David Cherkus

I wasn't aware of "performance counter monitor" and its capabilities till now.

I did start a thread called "Which Intel tool for the job?", but got no responses.


In any case, I have built pcm for linux and it's almost working. says:

Dear readers and users,

for questions and comments about Intel PCM and its use-cases, we recommend the Software Tuning, Performance Optimization & Platform Monitoring forum:

If you post a question/comment on this forum regarding Intel PCM, please mention "Intel PCM" in the title of your forum topic to catch our attention.

Intel PCM team

... so I will do that right now.


PS: Thanks to Hussam and Roman for the references to the Intel docs.

PPS: Sergey, Google is hinting that WMI is for Windows, no? If so, I can't use it at this time.

Portrait de Roman Dementiev (Intel)


just to avoid missunderstanding: latest Intel PCM 2.0 does notdisplay/support PCIecounters (although the monitoring capability exists in hardware as I mentioned earlier in this thread).


Portrait de David Cherkus

Re: no PCIe counter support in PCM 2.0: Thanks for the clarification.

Portrait de Patrick Fay (Intel)

Hello David,
Have you considered using OS counters to monitor PCI traffic?
On windows this would be the MS Perfmon counters like 'physical disk read/write' counters?
On linux this would be sysstat iostat counters.
MS Perfmon and sysstat also have counters for network traffic.

Portrait de ALAM Y.

Hi Roman,

I am working on Dual Intel Xeon Socket E5-2600 based board and need to find the PCIe utilization. You have mentioned in this thread about the Uncore Guide and I have only skimmed through section 2.8 - R2PCIe Performance Monitoring. But I had 2 questions:

A. Even with the latest PCM Version 2.4, there doesnt seem to be any support for PCIe counters. Is there any Beta version or another software to get this utilization?

B. Is there any document I can refer to on how to interpret these results/counters in terms of whether the PCIe is a bottleneck or not during my  test?



Portrait de iliyapolak


You can also use Xperf to monitor disk I/O activity.Use this command to start measurement xperf.exe -on latency

Portrait de iliyapolak


if you mean device 8 and 9  so it is dependent on BIOS support.

Portrait de Roman Dementiev (Intel)


we have just added a PCIe montoring capability into Intel PCM 2.5:


Portrait de Prince Joseph

can use Xperf for testing

Prince Joseph
Portrait de iliyapolak

>>>can use Xperf for testing>>>

Bios locking is system wide so Xperf can be also affected.

Connectez-vous pour laisser un commentaire.