perf-inject(1)
==============

NAME
----
perf-inject - Filter to augment the events stream with additional information

SYNOPSIS
--------
[verse]
'perf inject <options>'

DESCRIPTION
-----------
perf-inject reads a perf-record event stream and repipes it to stdout.  At any
point the processing code can inject other events into the event stream - in
this case build-ids (-b option) are read and injected as needed into the event
stream.

Build-ids are just the first user of perf-inject - potentially anything that
needs userspace processing to augment the events stream with additional
information could make use of this facility.

OPTIONS
-------
-b::
--build-ids=::
        Inject build-ids into the output stream
-v::
--verbose::
	Be more verbose.
-i::
--input=::
	Input file name. (default: stdin)
-o::
--output=::
	Output file name. (default: stdout)
-s::
--sched-stat::
	Merge sched_stat and sched_switch for getting events where and how long
	tasks slept. sched_switch contains a callchain where a task slept and
	sched_stat contains a timeslice how long a task slept.

--kallsyms=<file>::
	kallsyms pathname

--itrace::
	Decode Instruction Tracing data, replacing it with synthesized events.
	Options are:

include::itrace.txt[]

--strip::
	Use with --itrace to strip out non-synthesized events.

-j::
--jit::
	Process jitdump files by injecting the mmap records corresponding to jitted
	functions. This option also generates the ELF images for each jitted function
	found in the jitdumps files captured in the input perf.data file. Use this option
	if you are monitoring environment using JIT runtimes, such as Java, DART or V8.

SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1], linkperf:perf-archive[1]
