> On Jan 9, 2018, at 3:31 PM, Michael Kerrisk (man-pages) <mtk.manpages@xxxxxxxxx> wrote: > > 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 Thanks Michael! I will definitely send reminder when the kernel patches get merged. Best, Song > >> >> 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: https://urldefense.proofpoint.com/v2/url?u=http-3A__man7.org_training_&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=dR8692q0_uaizy0jkrBJQM5k2hfm4CiFxYT8KaysFrg&m=-QUclEjc2UtlNesnYHjWUeEPT5j6l14tJ6oxqre3KOg&s=y2SbV6TEeVSyhAfscexcyKtxB0not7EOezM0CNZeVVY&e= -- 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