From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Cc: oleg@redhat.com, rostedt@goodmis.org, mhiramat@kernel.org,
liu.song.a23@gmail.com, peterz@infradead.org, mingo@redhat.com,
acme@kernel.org, alexander.shishkin@linux.intel.com,
jolsa@redhat.com, namhyung@kernel.org,
linux-kernel@vger.kernel.org, ananth@linux.vnet.ibm.com,
alexis.berlemont@gmail.com, naveen.n.rao@linux.vnet.ibm.com,
linux-arm-kernel@lists.infradead.org, linux-mips@linux-mips.org,
linux@armlinux.org.uk, ralf@linux-mips.org, paul.burton@mips.com
Subject: Re: [PATCH v9 1/4] Uprobes: Support SDT markers having reference count (semaphore)
Date: Wed, 22 Aug 2018 05:39:43 -0700 [thread overview]
Message-ID: <20180822123943.GD2080@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180820044250.11659-2-ravi.bangoria@linux.ibm.com>
* Ravi Bangoria <ravi.bangoria@linux.ibm.com> [2018-08-20 10:12:47]:
> Userspace Statically Defined Tracepoints[1] are dtrace style markers
> inside userspace applications. Applications like PostgreSQL, MySQL,
> Pthread, Perl, Python, Java, Ruby, Node.js, libvirt, QEMU, glib etc
> have these markers embedded in them. These markers are added by developer
> at important places in the code. Each marker source expands to a single
> nop instruction in the compiled code but there may be additional
> overhead for computing the marker arguments which expands to couple of
> instructions. In case the overhead is more, execution of it can be
> omitted by runtime if() condition when no one is tracing on the marker:
>
> if (reference_counter > 0) {
> Execute marker instructions;
> }
>
> Default value of reference counter is 0. Tracer has to increment the
> reference counter before tracing on a marker and decrement it when
> done with the tracing.
>
> Implement the reference counter logic in core uprobe. User will be
> able to use it from trace_uprobe as well as from kernel module. New
> trace_uprobe definition with reference counter will now be:
>
> <path>:<offset>[(ref_ctr_offset)]
>
> where ref_ctr_offset is an optional field. For kernel module, new
> variant of uprobe_register() has been introduced:
>
> uprobe_register_refctr(inode, offset, ref_ctr_offset, consumer)
>
> No new variant for uprobe_unregister() because it's assumed to have
> only one reference counter for one uprobe.
>
> [1] https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
>
> Note: 'reference counter' is called as 'semaphore' in original Dtrace
> (or Systemtap, bcc and even in ELF) documentation and code. But the
> term 'semaphore' is misleading in this context. This is just a counter
> used to hold number of tracers tracing on a marker. This is not really
> used for any synchronization. So we are calling it a 'reference counter'
> in kernel / perf code.
>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
> Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
> Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
> [Only trace_uprobe.c]
> Reviewed-by: Oleg Nesterov <oleg@redhat.com>
> ---
WARNING: multiple messages have this Message-ID (diff)
From: srikar@linux.vnet.ibm.com (Srikar Dronamraju)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 1/4] Uprobes: Support SDT markers having reference count (semaphore)
Date: Wed, 22 Aug 2018 05:39:43 -0700 [thread overview]
Message-ID: <20180822123943.GD2080@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180820044250.11659-2-ravi.bangoria@linux.ibm.com>
* Ravi Bangoria <ravi.bangoria@linux.ibm.com> [2018-08-20 10:12:47]:
> Userspace Statically Defined Tracepoints[1] are dtrace style markers
> inside userspace applications. Applications like PostgreSQL, MySQL,
> Pthread, Perl, Python, Java, Ruby, Node.js, libvirt, QEMU, glib etc
> have these markers embedded in them. These markers are added by developer
> at important places in the code. Each marker source expands to a single
> nop instruction in the compiled code but there may be additional
> overhead for computing the marker arguments which expands to couple of
> instructions. In case the overhead is more, execution of it can be
> omitted by runtime if() condition when no one is tracing on the marker:
>
> if (reference_counter > 0) {
> Execute marker instructions;
> }
>
> Default value of reference counter is 0. Tracer has to increment the
> reference counter before tracing on a marker and decrement it when
> done with the tracing.
>
> Implement the reference counter logic in core uprobe. User will be
> able to use it from trace_uprobe as well as from kernel module. New
> trace_uprobe definition with reference counter will now be:
>
> <path>:<offset>[(ref_ctr_offset)]
>
> where ref_ctr_offset is an optional field. For kernel module, new
> variant of uprobe_register() has been introduced:
>
> uprobe_register_refctr(inode, offset, ref_ctr_offset, consumer)
>
> No new variant for uprobe_unregister() because it's assumed to have
> only one reference counter for one uprobe.
>
> [1] https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
>
> Note: 'reference counter' is called as 'semaphore' in original Dtrace
> (or Systemtap, bcc and even in ELF) documentation and code. But the
> term 'semaphore' is misleading in this context. This is just a counter
> used to hold number of tracers tracing on a marker. This is not really
> used for any synchronization. So we are calling it a 'reference counter'
> in kernel / perf code.
>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
> Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
> Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
> [Only trace_uprobe.c]
> Reviewed-by: Oleg Nesterov <oleg@redhat.com>
> ---
next prev parent reply other threads:[~2018-08-22 12:40 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-20 4:42 [PATCH v9 0/4] Uprobes: Support SDT markers having reference count (semaphore) Ravi Bangoria
2018-08-20 4:42 ` Ravi Bangoria
2018-08-20 4:42 ` [PATCH v9 1/4] " Ravi Bangoria
2018-08-20 4:42 ` Ravi Bangoria
2018-08-20 5:53 ` Song Liu
2018-08-20 5:53 ` Song Liu
2018-08-21 21:35 ` Song Liu
2018-08-21 21:35 ` Song Liu
2018-08-22 12:39 ` Srikar Dronamraju [this message]
2018-08-22 12:39 ` Srikar Dronamraju
2018-08-28 19:07 ` Song Liu
2018-08-28 19:07 ` Song Liu
2018-08-28 19:34 ` Steven Rostedt
2018-08-28 19:34 ` Steven Rostedt
2018-08-20 4:42 ` [PATCH v9 2/4] Uprobes/sdt: Prevent multiple reference counter for same uprobe Ravi Bangoria
2018-08-20 4:42 ` Ravi Bangoria
2018-08-20 5:54 ` Song Liu
2018-08-20 5:54 ` Song Liu
2018-08-21 21:35 ` Song Liu
2018-08-21 21:35 ` Song Liu
2018-08-20 4:42 ` [PATCH v9 3/4] trace_uprobe/sdt: " Ravi Bangoria
2018-08-20 4:42 ` Ravi Bangoria
2018-08-21 20:46 ` Song Liu
2018-08-21 20:46 ` Song Liu
2018-08-20 4:42 ` [PATCH v9 4/4] perf probe: Support SDT markers having reference counter (semaphore) Ravi Bangoria
2018-08-20 4:42 ` Ravi Bangoria
2018-08-21 21:33 ` Song Liu
2018-08-21 21:33 ` Song Liu
2018-08-30 18:45 ` Steven Rostedt
2018-08-30 18:45 ` Steven Rostedt
2018-08-30 18:50 ` Arnaldo Carvalho de Melo
2018-08-30 18:50 ` Arnaldo Carvalho de Melo
2018-08-30 19:43 ` Steven Rostedt
2018-08-30 19:43 ` Steven Rostedt
2018-08-20 17:38 ` [PATCH v9 0/4] Uprobes: Support SDT markers having reference count (semaphore) Song Liu
2018-08-20 17:38 ` Song Liu
2018-08-21 4:42 ` Ravi Bangoria
2018-08-21 4:42 ` Ravi Bangoria
2018-08-21 4:55 ` Song Liu
2018-08-21 4:55 ` Song Liu
2018-08-21 5:23 ` Ravi Bangoria
2018-08-21 5:23 ` Ravi Bangoria
2018-08-21 6:20 ` Ravi Bangoria
2018-08-21 6:20 ` Ravi Bangoria
2018-08-21 7:34 ` Naveen N. Rao
2018-08-21 7:34 ` Naveen N. Rao
2018-08-21 11:58 ` Ravi Bangoria
2018-08-21 11:58 ` Ravi Bangoria
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180822123943.GD2080@linux.vnet.ibm.com \
--to=srikar@linux.vnet.ibm.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=alexis.berlemont@gmail.com \
--cc=ananth@linux.vnet.ibm.com \
--cc=jolsa@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux@armlinux.org.uk \
--cc=liu.song.a23@gmail.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=naveen.n.rao@linux.vnet.ibm.com \
--cc=oleg@redhat.com \
--cc=paul.burton@mips.com \
--cc=peterz@infradead.org \
--cc=ralf@linux-mips.org \
--cc=ravi.bangoria@linux.ibm.com \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.