mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 21:45:01 +08:00
fd941521e8
Update the documentation of --build-id and --buildid-all options to clarify the difference between them. The former requires full sample processing to find which DSOs are actually used. While the latter simply injects every DSO's build-id from MMAP{,2} records, skipping SAMPLEs. Reviewed-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: https://lore.kernel.org/r/20220923173142.805896-3-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
120 lines
3.8 KiB
Plaintext
120 lines
3.8 KiB
Plaintext
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]
|