mirror of https://github.com/mkerrisk/man-pages
perf_event_open.2: Add type kprobe and uprobe
Two new types kprobe and uprobe are being added to perf_event_open(), which allow creating kprobe or uprobe with perf_event_open. This patch adds information about these types. Signed-off-by: Song Liu <songliubraving@fb.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
95b9ecbf9d
commit
7d8449ba19
|
@ -256,11 +256,15 @@ struct perf_event_attr {
|
|||
|
||||
union {
|
||||
__u64 bp_addr; /* breakpoint address */
|
||||
__u64 kprobe_func; /* for perf_kprobe */
|
||||
__u64 uprobe_path; /* for perf_uprobe */
|
||||
__u64 config1; /* extension of config */
|
||||
};
|
||||
|
||||
union {
|
||||
__u64 bp_len; /* breakpoint length */
|
||||
__u64 kprobe_addr; /* with kprobe_func == NULL */
|
||||
__u64 probe_offset; /* for perf_[k,u]probe */
|
||||
__u64 config2; /* extension of config1 */
|
||||
};
|
||||
__u64 branch_sample_type; /* enum perf_branch_sample_type */
|
||||
|
@ -336,6 +340,14 @@ field.
|
|||
For instance,
|
||||
.I /sys/bus/event_source/devices/cpu/type
|
||||
contains the value for the core CPU PMU, which is usually 4.
|
||||
.TP
|
||||
.BR kprobe " and " uprobe " (since Linux 4.16)"
|
||||
These two dynamic PMUs create a kprobe/uprobe and attach it to the
|
||||
file descriptor generated by perf_event_open. The kprobe/uprobe
|
||||
will be destroyed on the destruction of the file descriptor.
|
||||
See fields
|
||||
.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset
|
||||
for more details.
|
||||
.RE
|
||||
.TP
|
||||
.I "size"
|
||||
|
@ -627,6 +639,45 @@ then leave
|
|||
.I config
|
||||
set to zero.
|
||||
Its parameters are set in other places.
|
||||
.PP
|
||||
If
|
||||
.I type
|
||||
is
|
||||
.BR kprobe
|
||||
or
|
||||
.BR uprobe ,
|
||||
set
|
||||
.IR retprobe
|
||||
(bit 0 of
|
||||
.IR config ,
|
||||
see /sys/bus/event_source/devices/[k,u]probe/format/retprobe)
|
||||
for kretprobe/uretprobe. See fields
|
||||
.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset
|
||||
for more details.
|
||||
.RE
|
||||
.TP
|
||||
.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset
|
||||
.EE
|
||||
These fields describes the kprobe/uprobe for dynamic PMU
|
||||
.BR kprobe
|
||||
and
|
||||
.BR uprobe .
|
||||
For
|
||||
.BR kprobe ": "
|
||||
use
|
||||
.I kprobe_func
|
||||
and
|
||||
.IR probe_offset ,
|
||||
or use
|
||||
.I kprobe_addr
|
||||
and leave
|
||||
.I kprobe_func
|
||||
as NULL. For
|
||||
.BR uprobe ": "
|
||||
use
|
||||
.I uprobe_path
|
||||
and
|
||||
.IR probe_offset .
|
||||
.RE
|
||||
.TP
|
||||
.IR sample_period ", " sample_freq
|
||||
|
|
Loading…
Reference in New Issue