Perf events: Difference between revisions
From KVM
No edit summary |
(No difference)
|
Revision as of 09:28, 13 May 2010
This page describes how to count and trace performance events in the KVM kernel module.
There are two tools, kvm_stat and kvm_trace, which were previously used for these tasks. Now this can be done using standard Linux tracing tools.
Counting events
Often you want event counts after running a benchmark:
$ sudo mount -t debugfs none /sys/kernel/debug
$ sudo ./perf stat -e 'kvm:*' -a sleep 1h
^C
Performance counter stats for 'sleep 1h':
8330 kvm:kvm_entry # 0.000 M/sec
0 kvm:kvm_hypercall # 0.000 M/sec
4060 kvm:kvm_pio # 0.000 M/sec
0 kvm:kvm_cpuid # 0.000 M/sec
2681 kvm:kvm_apic # 0.000 M/sec
8343 kvm:kvm_exit # 0.000 M/sec
737 kvm:kvm_inj_virq # 0.000 M/sec
0 kvm:kvm_page_fault # 0.000 M/sec
0 kvm:kvm_msr # 0.000 M/sec
664 kvm:kvm_cr # 0.000 M/sec
872 kvm:kvm_pic_set_irq # 0.000 M/sec
0 kvm:kvm_apic_ipi # 0.000 M/sec
738 kvm:kvm_apic_accept_irq # 0.000 M/sec
874 kvm:kvm_set_irq # 0.000 M/sec
874 kvm:kvm_ioapic_set_irq # 0.000 M/sec
0 kvm:kvm_msi_set_irq # 0.000 M/sec
433 kvm:kvm_ack_irq # 0.000 M/sec
2685 kvm:kvm_mmio # 0.000 M/sec
3.493562100 seconds time elapsed
The perf tool is part of the Linux kernel tree in tools/perf.
Tracing events
Detailed traces can be generated using ftrace:
# mount -t debugfs none /sys/kernel/debug
# echo 1 >/sys/kernel/debug/tracing/events/kvm/enable
# cat /sys/kernel/debug/tracing/trace_pipe
[...]
kvm-5664 [000] 11906.220178: kvm_entry: vcpu 0
kvm-5664 [000] 11906.220181: kvm_exit: reason apic_access rip 0xc011518c
kvm-5664 [000] 11906.220183: kvm_mmio: mmio write len 4 gpa 0xfee000b0 val 0x0
kvm-5664 [000] 11906.220183: kvm_apic: apic_write APIC_EOI = 0x0
kvm-5664 [000] 11906.220184: kvm_ack_irq: irqchip IOAPIC pin 11
kvm-5664 [000] 11906.220185: kvm_entry: vcpu 0
kvm-5664 [000] 11906.220188: kvm_exit: reason io_instruction rip 0xc01e4473
kvm-5664 [000] 11906.220188: kvm_pio: pio_read at 0xc13e size 2 count 1
kvm-5664 [000] 11906.220193: kvm_entry: vcpu 0
^D
# echo 0 >/sys/kernel/debug/tracing/events/kvm/enable