forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.8 KiB
119 lines
3.8 KiB
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 of DSOs hit by samples into the output stream. |
|
This means it needs to process all SAMPLE records to find the DSOs. |
|
|
|
--buildid-all:: |
|
Inject build-ids of all DSOs into the output stream regardless of hits |
|
and skip SAMPLE processing. |
|
|
|
--known-build-ids=:: |
|
Override build-ids to inject using these comma-separated pairs of |
|
build-id and path. Understands file://filename to read these pairs |
|
from a file, which can be generated with perf buildid-list. |
|
|
|
-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. |
|
|
|
-k:: |
|
--vmlinux=<file>:: |
|
vmlinux pathname |
|
|
|
--ignore-vmlinux:: |
|
Ignore vmlinux files. |
|
|
|
--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. |
|
|
|
-f:: |
|
--force:: |
|
Don't complain, do it. |
|
|
|
--vm-time-correlation[=OPTIONS]:: |
|
Some architectures may capture AUX area data which contains timestamps |
|
affected by virtualization. This option will update those timestamps |
|
in place, to correlate with host timestamps. The in-place update means |
|
that an output file is not specified, and instead the input file is |
|
modified. The options are architecture specific, except that they may |
|
start with "dry-run" which will cause the file to be processed but |
|
without updating it. Currently this option is supported only by |
|
Intel PT, refer linkperf:perf-intel-pt[1] |
|
|
|
--guest-data=<path>,<pid>[,<time offset>[,<time scale>]]:: |
|
Insert events from a perf.data file recorded in a virtual machine at |
|
the same time as the input perf.data file was recorded on the host. |
|
The Process ID (PID) of the QEMU hypervisor process must be provided, |
|
and the time offset and time scale (multiplier) will likely be needed |
|
to convert guest time stamps into host time stamps. For example, for |
|
x86 the TSC Offset and Multiplier could be provided for a virtual machine |
|
using Linux command line option no-kvmclock. |
|
Currently only mmap, mmap2, comm, task, context_switch, ksymbol, |
|
and text_poke events are inserted, as well as build ID information. |
|
The QEMU option -name debug-threads=on is needed so that thread names |
|
can be used to determine which thread is running which VCPU. Note |
|
libvirt seems to use this by default. |
|
When using perf record in the guest, option --sample-identifier |
|
should be used, and also --buildid-all and --switch-events may be |
|
useful. |
|
|
|
:GMEXAMPLECMD: inject |
|
:GMEXAMPLESUBCMD: |
|
include::guestmount.txt[] |
|
|
|
SEE ALSO |
|
-------- |
|
linkperf:perf-record[1], linkperf:perf-report[1], linkperf:perf-archive[1], |
|
linkperf:perf-intel-pt[1]
|
|
|