159 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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 sample, percent_sample, time, percent_time, max_t, min_t, mean_t.
 | |
| 
 | |
|   '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, for the 'report', 'diff' and 'buildid-list' subcommands.
 | |
| -o::
 | |
| --output=<path>::
 | |
|         Output file name, for the 'record' subcommand. Doesn't work with 'report',
 | |
|         just redirect the output to a file when using 'report'.
 | |
| --host::
 | |
|         Collect host side performance profile.
 | |
| --guest::
 | |
|         Collect guest side performance profile.
 | |
| 
 | |
| :GMEXAMPLECMD: kvm --host --guest
 | |
| :GMEXAMPLESUBCMD: top
 | |
| include::guest-files.txt[]
 | |
| 
 | |
| --stdio:: Use the stdio interface.
 | |
| 
 | |
| -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), percent_sample (sort by sample percentage), time
 | |
|        (sort by average time), precent_time (sort by time percentage),
 | |
|        max_t (sort by maximum time), min_t (sort by minimum time), mean_t
 | |
|        (sort by mean 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 in bytes with appended unit character - B/K/M/G.
 | |
|         The size is rounded up to the nearest power-of-two page 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]
 |