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

Reply via email to