kvm_stat(1)
===========

NAME
----
kvm_stat - Report KVM kernel module event counters

SYNOPSIS
--------
[verse]
'kvm_stat' [OPTION]...

DESCRIPTION
-----------
kvm_stat prints counts of KVM kernel module trace events.  These events signify
state transitions such as guest mode entry and exit.

This tool is useful for observing guest behavior from the host perspective.
Often conclusions about performance or buggy behavior can be drawn from the
output.
While running in regular mode, use any of the keys listed in section
'Interactive Commands' below.
Use batch and logging modes for scripting purposes.

The set of KVM kernel module trace events may be specific to the kernel version
or architecture.  It is best to check the KVM kernel module source code for the
meaning of events.

INTERACTIVE COMMANDS
--------------------
[horizontal]
*b*::	toggle events by guests (debugfs only, honors filters)

*c*::	clear filter

*f*::	filter by regular expression
 ::     *Note*: Child events pull in their parents, and parents' stats summarize
                all child events, not just the filtered ones

*g*::	filter by guest name/PID

*h*::	display interactive commands reference

*o*::   toggle sorting order (Total vs CurAvg/s)

*p*::	filter by guest name/PID

*q*::	quit

*r*::	reset stats

*s*::   set update interval

*x*::	toggle reporting of stats for child trace events
 ::     *Note*: The stats for the parents summarize the respective child trace
                events

Press any other key to refresh statistics immediately.

OPTIONS
-------
-1::
--once::
--batch::
	run in batch mode for one second

-l::
--log::
	run in logging mode (like vmstat)

-t::
--tracepoints::
	retrieve statistics from tracepoints

-d::
--debugfs::
	retrieve statistics from debugfs

-i::
--debugfs-include-past::
	include all available data on past events for debugfs

-p<pid>::
--pid=<pid>::
	limit statistics to one virtual machine (pid)

-g<guest>::
--guest=<guest_name>::
	limit statistics to one virtual machine (guest name)

-f<fields>::
--fields=<fields>::
	fields to display (regex), "-f help" for a list of available events

-h::
--help::
	show help message

SEE ALSO
--------
'perf'(1), 'trace-cmd'(1)

AUTHOR
------
Stefan Hajnoczi <stefanha@redhat.com>
