123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- perf-kvm(1)
- ===========
- NAME
- ----
- perf-kvm - Tool to trace/measure kvm guest os
- SYNOPSIS
- --------
- [verse]
- '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 (x86 only) and ioport (x86 only)
- 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 (x86 only),
- ioport (x86 only). (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 (x86 only), ioport (x86 only).
- (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 (x86 only) or Wait state (s390 only)
- that take longer than duration usecs.
- --proc-map-timeout::
- When processing pre-existing threads /proc/XXX/mmap, it may take
- a long time, because the file may be huge. A time out is needed
- in such cases.
- This option sets the time out limit. The default value is 500 ms.
- SEE ALSO
- --------
- linkperf:perf-top[1], linkperf:perf-record[1], linkperf:perf-report[1],
- linkperf:perf-diff[1], linkperf:perf-buildid-list[1],
- linkperf:perf-stat[1]
|