Scroll to navigation

PERF-KVM(1) perf Manual PERF-KVM(1)

NAME

perf-kvm - Tool to trace/measure kvm guest os

SYNOPSIS

perf kvm [--host] [--guest] [--guestmount=<path>

[--guestkallsyms=<path> --guestmodules=<path> | --guestvmlinux=<path>]]
{top|record|report|diff|buildid-list} [<options>] perf kvm [--host] [--guest] [--guestkallsyms=<path> --guestmodules=<path>
| --guestvmlinux=<path>] {top|record|report|diff|buildid-list|stat} [<options>] ´perf kvm stat [record|report|live] [<options>]

DESCRIPTION

There are a couple of variants of perf kvm:

´perf kvm [options] top <command>´ to generates and displays
a performance counter profile of guest os in realtime
of an arbitrary workload.

´perf kvm record <command>´ to record the performance counter profile
of an arbitrary workload and save it into a perf data file. We set the
default behavior of perf kvm as --guest, so if neither --host nor --guest
is input, the perf data file name is perf.data.guest. If --host is input,
the perf data file name is perf.data.kvm. If you want to record data into
perf.data.host, please input --host --no-guest. The behaviors are shown as
following:

Default(´´) -> perf.data.guest
--host -> perf.data.kvm
--guest -> perf.data.guest
--host --guest -> perf.data.kvm
--host --no-guest -> perf.data.host

´perf kvm report´ to display the performance counter profile information
recorded via perf kvm record.

´perf kvm diff´ to displays the performance difference amongst two perf.data
files captured via perf record.

´perf kvm buildid-list´ to  display the buildids found in a perf data file,
so that other tools can be used to fetch packages with matching symbol tables
for use by perf report. As buildid is read from /sys/kernel/notes in os, then
if you want to list the buildid for guest, please make sure your perf data file
was captured with --guestmount in perf kvm record.

´perf kvm stat <command>´ to run a command and gather performance counter
statistics.
Especially, perf ´kvm stat record/report´ generates a statistical analysis
of KVM events. Currently, vmexit, mmio and ioport events are supported.
´perf kvm stat record <command>´ records kvm events and the events between
start and end <command>.
And this command produces a file which contains tracing results of kvm
events.

´perf kvm stat report´ reports statistical data which includes events
handled time, samples, and so on.

´perf kvm stat live´ reports statistical data in a live mode (similar to
record + report but with statistical data updated live at a given display
rate).

OPTIONS

-i, --input=<path>

Input file name.

-o, --output=<path>

Output file name.

--host

Collect host side performance profile.

--guest

Collect guest side performance profile.

--guestmount=<path>

Guest os root file system mount directory. Users mounts guest os root directories under <path> by a specific filesystem access method, typically, sshfs. For example, start 2 guest os. The one’s pid is 8888 and the other’s is 9999. #mkdir /guestmount; cd/guestmount #sshfs -o allow_other,direct_io -p 5551 localhost:/ 8888/ #sshfs -o allow_other,direct_io -p 5552 localhost:/ 9999/ #perf kvm --host --guest --guestmount=~/guestmount top

--guestkallsyms=<path>

Guest os /proc/kallsyms file copy. perf kvm´ reads it to get guest kernel symbols. Users copy it out from guest os.

--guestmodules=<path>

Guest os /proc/modules file copy. perf kvm´ reads it to get guest kernel module information. Users copy it out from guest os.

--guestvmlinux=<path>

Guest os kernel vmlinux.

-v, --verbose

Be more verbose (show counter open errors, etc).

STAT REPORT OPTIONS

--vcpu=<value>

analyze events which occur on this vcpu. (default: all vcpus)

--event=<value>

event to be analyzed. Possible values: vmexit, mmio, ioport. (default: vmexit)

-k, --key=<value>

Sorting key. Possible values: sample (default, sort by samples number), time (sort by average time).

-p, --pid=

Analyze events only for given process ID(s) (comma separated list).

STAT LIVE OPTIONS

-d, --display

Time in seconds between display updates

-m, --mmap-pages=

Number of mmap data pages (must be a power of two) or size specification with appended unit character - B/K/M/G. The size is rounded up to have nearest pages power of two value.

-a, --all-cpus

System-wide collection from all CPUs.

-p, --pid=

Analyze events only for given process ID(s) (comma separated list).

--vcpu=<value>

analyze events which occur on this vcpu. (default: all vcpus)

--event=<value>

event to be analyzed. Possible values: vmexit, mmio, ioport. (default: vmexit)

-k, --key=<value>

Sorting key. Possible values: sample (default, sort by samples number), time (sort by average time).

--duration=<value>

Show events other than HLT that take longer than duration usecs.

SEE ALSO

perf-top(1), perf-record(1), perf-report(1), perf-diff(1), perf-buildid-list(1), perf-stat(1)

04/21/2023 perf