Tracking memory, PCI(-E) bus usage?

Ryan Stone rysto32 at gmail.com
Fri Feb 24 18:27:38 UTC 2012


I can't help you with PCI bandwidth usage(and personally I'd be very
interested in being able to measure that), but I do know that
Nehalem-based Intel Core i7s (and presumably more recent Intel CPUs)
export PMCs for measuring memory bandwidth utilization.  The PMCs for
the Core i7 are:

QMC_BUSY.WRITE.CH0
QMC_BUSY.READ.CH0
QMC_BUSY.WRITE.CH1
QMC_BUSY.READ.CH1
QMC_BUSY.WRITE.CH2
QMC_BUSY.READ.CH2

You can divide these by UCLOCK to get the percent utilization.

If you hate doing math by hand I've written a simple curses-based
utility for measuring PMC statistics like this:

https://code.google.com/p/perfdb/

It outputs stats like this:
Memory Channel Utilization: (hotkey m)

GQ_Write_Nonempty:  0.11
GQ_To_L3_Busy:      0.00
GQ_To_QPI_Busy:     0.00
GQ_To_Core_Busy:    0.00
Chan0_Util_Write:   0.01
Chan0_Util_Read:    0.03
Chan1_Util_Write:   0.00
Chan1_Util_Read:    0.03
Chan2_Util_Write:   0.00
Chan2_Util_Read:    0.00

It's still very much a work in progress and there's zero documentation
for it(hint: the left and right arrow keys are used to cycle between
pages of stats, and the q key quits) but I thought that I'd mention
it.


More information about the freebsd-hackers mailing list