Skip to contentSkip to conversation

perf, H/W counters - ESX hosted VM

DISCUSSION David Ahern 2 participants 2 messages May 27, 2011

lore
Share & tools
lore
#0 lore raw

Has anyone successfully used perf within an ESX VM? dmesg shows a PMU is discovered:

dmesg | grep -i performance
Performance Events: Nehalem/Corei7 events, Intel PMU driver.

yet data from it is nonsensical:

perf stat -v -- /tmp/a

task-clock-msecs: 20593318 20593318 20593318
context-switches: 2 20593318 20593318
CPU-migrations: 0 20593318 20593318
page-faults: 387 20593318 20593318
cycles: 10737418235 20593318 20593318
instructions: 10737418235 20593318 20593318
cache-references: 10737418235 20593318 20593318
cache-misses: 10737418235 20593318 20593318

Performance counter stats for '/tmp/a':

      20.593318  task-clock-msecs         #      0.988 CPUs
              2  context-switches         #      0.000 M/sec
              0  CPU-migrations           #      0.000 M/sec
            387  page-faults              #      0.019 M/sec
    10737418235  cycles                   # 521403.022 M/sec
    10737418235  instructions             #      1.000 IPC
    10737418235  cache-references         # 521403.022 M/sec
    10737418235  cache-misses             # 521403.022 M/sec
    0.020837863  seconds time elapsed

David

/tmp/a -- a step above 'sleep 1'

#!/bin/sh

declare -i i=0;
declare -i sum=0;
while [ $i -lt 1000 ]
do

	sum=$((sum + i))
    i=$((i+1))

done
echo "sum $sum"

#1 lore raw
Quoted 3 lines · David Ahern

Has anyone successfully used perf within an ESX VM? dmesg shows a PMU is discovered:

Don't know about ESX. But in general, getting this right requires virtualizing PMU hardware (eg: save/restore PMU state on exit/entry from the guest just the way the scheduler does for processes).

Also, the MSR read/writes to event-{select,count} registers must be properly virtualized. Interrupt delivery (NMIs) is important as well.

I suspect that MSR writes from the guest to the PMU related registers are simply ignored in most virtual environments today.

-Arun