On 01/09/2018 08:39 PM, Song Liu wrote: > 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. Hello Song Liu, Thank you for the quick revision. I've merged this patch into a local branch, and made a few trivial edits. If the change is merged in 4.16, I'll merge the man-pages changes. Would you be so kind as to remind me when the patch is merged in 4.16. Thanks, Michael > > Signed-off-by: Song Liu <songliubraving@xxxxxx> > --- > man2/perf_event_open.2 | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 51 insertions(+) > > diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2 > index c91da3f..b5f2596 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_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 > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html