* [PATCH] create [k,u]probe with perf_event_open
@ 2018-01-09 1:21 Song Liu
[not found] ` <20180109012154.1146884-1-songliubraving-b10kYP2dOMg@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Song Liu @ 2018-01-09 1:21 UTC (permalink / raw)
To: linux-man-u79uwXL29TY76Z2rM5mHXA,
mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
Cc: kernel-team-b10kYP2dOMg, peterz-wEGCiKHe2LqWVfeAwA7xHQ, Song Liu
This patches adds information about extending perf_event_open API to
create kprobe and uprobe. The [k,u]probe is attached to the file
descriptor returned by perf_event_open() for easier clean up.
Kernel side patches ofthis work as been accepted by Peter into his
repository:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git perf/core
Discussions about the latest version can be found at:
https://marc.info/?l=linux-kernel&m=151260040403095
Thanks,
Song
Song Liu (1):
perf_event_open.2: add type kprobe and uprobe
man2/perf_event_open.2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
--
2.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread[parent not found: <20180109012154.1146884-1-songliubraving-b10kYP2dOMg@public.gmane.org>]
* [PATCH] perf_event_open.2: add type kprobe and uprobe [not found] ` <20180109012154.1146884-1-songliubraving-b10kYP2dOMg@public.gmane.org> @ 2018-01-09 1:21 ` Song Liu [not found] ` <20180109012154.1146884-2-songliubraving-b10kYP2dOMg@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Song Liu @ 2018-01-09 1:21 UTC (permalink / raw) To: linux-man-u79uwXL29TY76Z2rM5mHXA, mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w Cc: kernel-team-b10kYP2dOMg, peterz-wEGCiKHe2LqWVfeAwA7xHQ, Song Liu 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-b10kYP2dOMg@public.gmane.org> --- man2/perf_event_open.2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2 index c91da3f..1bfe7bf 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,13 @@ 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 PMU creates kprobe or uprobe with perf_event_open and +attaches it to the file descriptor. +See fields +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset +for more details. .RE .TP .I "size" @@ -627,6 +638,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 -- 2.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <20180109012154.1146884-2-songliubraving-b10kYP2dOMg@public.gmane.org>]
* Re: [PATCH] perf_event_open.2: add type kprobe and uprobe [not found] ` <20180109012154.1146884-2-songliubraving-b10kYP2dOMg@public.gmane.org> @ 2018-01-09 19:15 ` Michael Kerrisk (man-pages) [not found] ` <b88c5109-6a2c-f486-e617-e9f60a1fa096-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Michael Kerrisk (man-pages) @ 2018-01-09 19:15 UTC (permalink / raw) To: Song Liu, linux-man-u79uwXL29TY76Z2rM5mHXA Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, kernel-team-b10kYP2dOMg, peterz-wEGCiKHe2LqWVfeAwA7xHQ Hello Song Liu, On 01/09/2018 02:21 AM, 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. > > Signed-off-by: Song Liu <songliubraving-b10kYP2dOMg@public.gmane.org> > --- > man2/perf_event_open.2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2 > index c91da3f..1bfe7bf 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,13 @@ 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 PMU creates kprobe or uprobe with perf_event_open and There's some grammar problem with the piece "These two dynamic PMU creates kprobe or uprobe" which makes the sentence hard to understand. Unfortunately, I cannot suggest a fix, because I'm bot sure what you want to say. Could you explain further what you mean with this sentence please. Cheers, Michael > +attaches it to the file descriptor. > +See fields > +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset > +for more details. > .RE > .TP > .I "size" > @@ -627,6 +638,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-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <b88c5109-6a2c-f486-e617-e9f60a1fa096-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] perf_event_open.2: add type kprobe and uprobe [not found] ` <b88c5109-6a2c-f486-e617-e9f60a1fa096-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2018-01-09 19:19 ` Song Liu 0 siblings, 0 replies; 4+ messages in thread From: Song Liu @ 2018-01-09 19:19 UTC (permalink / raw) To: Michael Kerrisk (man-pages) Cc: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Kernel Team, peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org > On Jan 9, 2018, at 11:15 AM, Michael Kerrisk (man-pages) <mtk.manpages@gmail.com> wrote: > > Hello Song Liu, > > On 01/09/2018 02:21 AM, 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. >> >> Signed-off-by: Song Liu <songliubraving-b10kYP2dOMg@public.gmane.org> >> --- >> man2/perf_event_open.2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 50 insertions(+) >> >> diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2 >> index c91da3f..1bfe7bf 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,13 @@ 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 PMU creates kprobe or uprobe with perf_event_open and > > There's some grammar problem with the piece "These two dynamic PMU > creates kprobe or uprobe" which makes the sentence hard to understand. > Unfortunately, I cannot suggest a fix, because I'm bot sure what > you want to say. Could you explain further what you mean with this > sentence please. > > Cheers, > > Michael Thanks Michael for the quick review. I will revise and resend it shortly. Best, Song > >> +attaches it to the file descriptor. >> +See fields >> +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset >> +for more details. >> .RE >> .TP >> .I "size" >> @@ -627,6 +638,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=BxJ48o65bCqQUo7HcXxgsDefYOf05VsGILxMoy4fJKc&s=4xg3hOwiHR50zQsrO5JMaFgTx2X0PfRDEgAB5kojJ1I&e= -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-01-09 19:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 1:21 [PATCH] create [k,u]probe with perf_event_open Song Liu
[not found] ` <20180109012154.1146884-1-songliubraving-b10kYP2dOMg@public.gmane.org>
2018-01-09 1:21 ` [PATCH] perf_event_open.2: add type kprobe and uprobe Song Liu
[not found] ` <20180109012154.1146884-2-songliubraving-b10kYP2dOMg@public.gmane.org>
2018-01-09 19:15 ` Michael Kerrisk (man-pages)
[not found] ` <b88c5109-6a2c-f486-e617-e9f60a1fa096-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-09 19:19 ` Song Liu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox