Virtualization of Perf Counters
This page is mostly a placeholder with info gathered while
doing VM perf counter work. It's not meant to be exhaustive,
just notes I want to jot down so I don't forget.
KVM
As of Linux 3.3 KVM supports perf counters in the guest.
You also need a recent enough Qemu (as of April 2012 that means
a git snapshot). Aggregate counts are supported, although
overflow interrupts don't seem to be.
I'm using a Debian Unstable disk image. with the command line:
./qemu/bin/qemu-system-x86_64 -cpu host -drive if=virtio,aio=native,file=vmw5.qcow2 -m 512 -nographic --enable-kvm
It works on a core2 machine. On sandybridge I have to boot the
kernel with the "nox2apic" option, as it crashes on boot otherwise.
To get the serial console to work at boot I need to add the following
to the /etc/default/grub file and then run update-grub:
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX_DEFAULT="nox2apic"
GRUB_CMDLINE_LINUX="text console=tty0 console=ttyS0,115200n8"
Xen
Xen has work on perf-counters done too.
At one point I had Xenoprof, which was oprofile for Xen, going
on a laptop but I lost the disk image.
VMware
Doesn't currently support perf counters in guest, but
the next version might.
Host Measurement
You can also use perf counters to measure a guest from
outside, in the host. See the perf tool's "kvm" options
of vmkperf on VMware.
Back to unofficial perf_event pages