perf-kowrk(1)
=============

NAME
----
perf-kwork - Tool to trace/measure kernel work properties (latencies)

SYNOPSIS
--------
[verse]
'perf kwork' {record}

DESCRIPTION
-----------
There are several variants of 'perf kwork':

  'perf kwork record <command>' to record the kernel work
  of an arbitrary workload.

  'perf kwork report' to report the per kwork runtime.

  'perf kwork latency' to report the per kwork latencies.

  'perf kwork timehist' provides an analysis of kernel work events.

    Example usage:
        perf kwork record -- sleep 1
        perf kwork report
        perf kwork report -b
        perf kwork latency
        perf kwork latency -b
        perf kwork timehist

   By default it shows the individual work events such as irq, workqeueu,
   including the run time and delay (time between raise and actually entry):

      Runtime start      Runtime end        Cpu     Kwork name                 Runtime     Delaytime
                                                    (TYPE)NAME:NUM             (msec)      (msec)
   -----------------  -----------------  ------  -------------------------  ----------  ----------
      1811186.976062     1811186.976327  [0000]  (s)RCU:9                        0.266       0.114
      1811186.978452     1811186.978547  [0000]  (s)SCHED:7                      0.095       0.171
      1811186.980327     1811186.980490  [0000]  (s)SCHED:7                      0.162       0.083
      1811186.981221     1811186.981271  [0000]  (s)SCHED:7                      0.050       0.077
      1811186.984267     1811186.984318  [0000]  (s)SCHED:7                      0.051       0.075
      1811186.987252     1811186.987315  [0000]  (s)SCHED:7                      0.063       0.081
      1811186.987785     1811186.987843  [0006]  (s)RCU:9                        0.058       0.645
      1811186.988319     1811186.988383  [0000]  (s)SCHED:7                      0.064       0.143
      1811186.989404     1811186.989607  [0002]  (s)TIMER:1                      0.203       0.111
      1811186.989660     1811186.989732  [0002]  (s)SCHED:7                      0.072       0.310
      1811186.991295     1811186.991407  [0002]  eth0:10                         0.112
      1811186.991639     1811186.991734  [0002]  (s)NET_RX:3                     0.095       0.277
      1811186.989860     1811186.991826  [0002]  (w)vmstat_shepherd              1.966       0.345
    ...

   Times are in msec.usec.

OPTIONS
-------
-D::
--dump-raw-trace=::
	Display verbose dump of the sched data.

-f::
--force::
	Don't complain, do it.

-k::
--kwork::
	List of kwork to profile (irq, softirq, workqueue, etc)

-v::
--verbose::
	Be more verbose. (show symbol address, etc)

OPTIONS for 'perf kwork report'
----------------------------

-b::
--use-bpf::
	Use BPF to measure kwork runtime

-C::
--cpu::
	Only show events for the given CPU(s) (comma separated list).

-i::
--input::
	Input file name. (default: perf.data unless stdin is a fifo)

-n::
--name::
	Only show events for the given name.

-s::
--sort::
	Sort by key(s): runtime, max, count

-S::
--with-summary::
	Show summary with statistics

--time::
	Only analyze samples within given time window: <start>,<stop>. Times
	have the format seconds.microseconds. If start is not given (i.e., time
	string is ',x.y') then analysis starts at the beginning of the file. If
	stop time is not given (i.e, time string is 'x.y,') then analysis goes
	to end of file.

OPTIONS for 'perf kwork latency'
----------------------------

-b::
--use-bpf::
	Use BPF to measure kwork latency

-C::
--cpu::
	Only show events for the given CPU(s) (comma separated list).

-i::
--input::
	Input file name. (default: perf.data unless stdin is a fifo)

-n::
--name::
	Only show events for the given name.

-s::
--sort::
	Sort by key(s): avg, max, count

--time::
	Only analyze samples within given time window: <start>,<stop>. Times
	have the format seconds.microseconds. If start is not given (i.e., time
	string is ',x.y') then analysis starts at the beginning of the file. If
	stop time is not given (i.e, time string is 'x.y,') then analysis goes
	to end of file.

OPTIONS for 'perf kwork timehist'
---------------------------------

-C::
--cpu::
	Only show events for the given CPU(s) (comma separated list).

-g::
--call-graph::
	Display call chains if present (default off).

-i::
--input::
	Input file name. (default: perf.data unless stdin is a fifo)

-k::
--vmlinux=<file>::
	Vmlinux pathname

-n::
--name::
	Only show events for the given name.

--kallsyms=<file>::
	Kallsyms pathname

--max-stack::
	Maximum number of functions to display in backtrace, default 5.

--symfs=<directory>::
    Look for files with symbols relative to this directory.

--time::
	Only analyze samples within given time window: <start>,<stop>. Times
	have the format seconds.microseconds. If start is not given (i.e., time
	string is ',x.y') then analysis starts at the beginning of the file. If
	stop time is not given (i.e, time string is 'x.y,') then analysis goes
	to end of file.

SEE ALSO
--------
linkperf:perf-record[1]
