Two new types PERF_TYPE_KPROBE and PERF_TYPE_UPROBE are being added to perf_event_attr. This patch adds information about this type.
Signed-off-by: Song Liu <songliubrav...@fb.com> --- man2/perf_event_open.2 | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2 index c91da3f..e662332 100644 --- a/man2/perf_event_open.2 +++ b/man2/perf_event_open.2 @@ -256,11 +256,15 @@ struct perf_event_attr { union { __u64 bp_addr; /* breakpoint address */ + __u64 kprobe_func; /* for PERF_TYPE_KPROBE */ + __u64 uprobe_path; /* for PERF_TYPE_KPROBE */ __u64 config1; /* extension of config */ }; union { __u64 bp_len; /* breakpoint length */ + __u64 kprobe_addr; /* for PERF_TYPE_KPROBE, with kprobe_func == NULL */ + __u64 probe_offset; /* for PERF_TYPE_[K,U]PROBE */ __u64 config2; /* extension of config1 */ }; __u64 branch_sample_type; /* enum perf_branch_sample_type */ @@ -317,6 +321,13 @@ This indicates a hardware breakpoint as provided by the CPU. Breakpoints can be read/write accesses to an address as well as execution of an instruction address. .TP +.BR PERF_TYPE_KPROBE " and " PERF_TYPE_UPROBE " (since Linux 4.TBD)" +This indicates a kprobe or uprobe should be created and +attached to the file descriptor. +See fields +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset +for more details. +.TP .RB "dynamic PMU" Since Linux 2.6.38, .\" commit 2e80a82a49c4c7eca4e35734380f28298ba5db19 @@ -627,6 +638,37 @@ then leave .I config set to zero. Its parameters are set in other places. +.PP +If +.I type +is +.BR PERF_TYPE_KPROBE +or +.BR PERF_TYPE_UPROBE , +.I config +of 0 means kprobe/uprobe, while +.I config +of 1 means kretprobe/uretprobe. +.RE +.TP +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset +.EE +These fields describes the kprobe/uprobe for +.BR PERF_TYPE_KPROBE +and +.BR PERF_TYPE_UPROBE . +For kprobe: use +.I kprobe_func +and +.IR probe_offset , +or use +.I kprobe_addr +and leave +.I kprobe_func +as NULL. For uprobe: use +.I uprobe_path +and +.IR probe_offset . .RE .TP .IR sample_period ", " sample_freq -- 2.9.5