Message ID | 20240421194206.1010934-8-jolsa@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | uprobe: uretprobe speed up | expand |
On Sun, 21 Apr 2024 21:42:06 +0200 Jiri Olsa <jolsa@kernel.org> wrote: > Adding man page for new uretprobe syscall. > > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > --- > man2/uretprobe.2 | 40 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > create mode 100644 man2/uretprobe.2 > > diff --git a/man2/uretprobe.2 b/man2/uretprobe.2 > new file mode 100644 > index 000000000000..c0343a88bb57 > --- /dev/null > +++ b/man2/uretprobe.2 > @@ -0,0 +1,40 @@ > +.\" Copyright (C) 2024, Jiri Olsa <jolsa@kernel.org> > +.\" > +.\" SPDX-License-Identifier: Linux-man-pages-copyleft > +.\" > +.TH uretprobe 2 (date) "Linux man-pages (unreleased)" > +.SH NAME > +uretprobe \- execute pending return uprobes > +.SH SYNOPSIS > +.nf > +.B int uretprobe(void) > +.fi > +.SH DESCRIPTION > +On x86_64 architecture the kernel is using uretprobe syscall to trigger > +uprobe return probe consumers instead of using standard breakpoint instruction. > +The reason is that it's much faster to do syscall than breakpoint trap > +on x86_64 architecture. Do we specify the supported architecture as this? Currently it is supported only on x86-64, but it could be extended later, right? This should be just noted as NOTES. Something like "This syscall is initially introduced on x86-64 because a syscall is faster than a breakpoint trap on it. But this will be extended to the architectures whose syscall is faster than breakpoint trap." Thank you, > + > +The uretprobe syscall is not supposed to be called directly by user, it's allowed > +to be invoked only through user space trampoline provided by kernel. > +When called from outside of this trampoline, the calling process will receive > +.BR SIGILL . > + > +.SH RETURN VALUE > +.BR uretprobe() > +return value is specific for given architecture. > + > +.SH VERSIONS > +This syscall is not specified in POSIX, > +and details of its behavior vary across systems. > +.SH STANDARDS > +None. > +.SH NOTES > +.BR uretprobe() > +exists only to allow the invocation of return uprobe consumers. > +It should > +.B never > +be called directly. > +Details of the arguments (if any) passed to > +.BR uretprobe () > +and the return value are specific for given architecture. > -- > 2.44.0 >
On Tue, Apr 23, 2024 at 12:07:29AM +0900, Masami Hiramatsu wrote: > On Sun, 21 Apr 2024 21:42:06 +0200 > Jiri Olsa <jolsa@kernel.org> wrote: > > > Adding man page for new uretprobe syscall. > > > > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > > --- > > man2/uretprobe.2 | 40 ++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 40 insertions(+) > > create mode 100644 man2/uretprobe.2 > > > > diff --git a/man2/uretprobe.2 b/man2/uretprobe.2 > > new file mode 100644 > > index 000000000000..c0343a88bb57 > > --- /dev/null > > +++ b/man2/uretprobe.2 > > @@ -0,0 +1,40 @@ > > +.\" Copyright (C) 2024, Jiri Olsa <jolsa@kernel.org> > > +.\" > > +.\" SPDX-License-Identifier: Linux-man-pages-copyleft > > +.\" > > +.TH uretprobe 2 (date) "Linux man-pages (unreleased)" > > +.SH NAME > > +uretprobe \- execute pending return uprobes > > +.SH SYNOPSIS > > +.nf > > +.B int uretprobe(void) > > +.fi > > +.SH DESCRIPTION > > +On x86_64 architecture the kernel is using uretprobe syscall to trigger > > +uprobe return probe consumers instead of using standard breakpoint instruction. > > +The reason is that it's much faster to do syscall than breakpoint trap > > +on x86_64 architecture. > > Do we specify the supported architecture as this? Currently it is supported > only on x86-64, but it could be extended later, right? yes, that's the idea, but I can't really speak other than x86 ;-) so not sure abour other archs details > > This should be just noted as NOTES. Something like "This syscall is initially > introduced on x86-64 because a syscall is faster than a breakpoint trap on it. > But this will be extended to the architectures whose syscall is faster than > breakpoint trap." 's/will be extended/might be will be extended/' seems better to me, other than that it looks ok thanks, jirka > > Thank you, > > > + > > +The uretprobe syscall is not supposed to be called directly by user, it's allowed > > +to be invoked only through user space trampoline provided by kernel. > > +When called from outside of this trampoline, the calling process will receive > > +.BR SIGILL . > > + > > +.SH RETURN VALUE > > +.BR uretprobe() > > +return value is specific for given architecture. > > + > > +.SH VERSIONS > > +This syscall is not specified in POSIX, > > +and details of its behavior vary across systems. > > +.SH STANDARDS > > +None. > > +.SH NOTES > > +.BR uretprobe() > > +exists only to allow the invocation of return uprobe consumers. > > +It should > > +.B never > > +be called directly. > > +Details of the arguments (if any) passed to > > +.BR uretprobe () > > +and the return value are specific for given architecture. > > -- > > 2.44.0 > > > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
diff --git a/man2/uretprobe.2 b/man2/uretprobe.2 new file mode 100644 index 000000000000..c0343a88bb57 --- /dev/null +++ b/man2/uretprobe.2 @@ -0,0 +1,40 @@ +.\" Copyright (C) 2024, Jiri Olsa <jolsa@kernel.org> +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.TH uretprobe 2 (date) "Linux man-pages (unreleased)" +.SH NAME +uretprobe \- execute pending return uprobes +.SH SYNOPSIS +.nf +.B int uretprobe(void) +.fi +.SH DESCRIPTION +On x86_64 architecture the kernel is using uretprobe syscall to trigger +uprobe return probe consumers instead of using standard breakpoint instruction. +The reason is that it's much faster to do syscall than breakpoint trap +on x86_64 architecture. + +The uretprobe syscall is not supposed to be called directly by user, it's allowed +to be invoked only through user space trampoline provided by kernel. +When called from outside of this trampoline, the calling process will receive +.BR SIGILL . + +.SH RETURN VALUE +.BR uretprobe() +return value is specific for given architecture. + +.SH VERSIONS +This syscall is not specified in POSIX, +and details of its behavior vary across systems. +.SH STANDARDS +None. +.SH NOTES +.BR uretprobe() +exists only to allow the invocation of return uprobe consumers. +It should +.B never +be called directly. +Details of the arguments (if any) passed to +.BR uretprobe () +and the return value are specific for given architecture.
Adding man page for new uretprobe syscall. Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- man2/uretprobe.2 | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 man2/uretprobe.2