Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [ltt-dev] LTTng-UST vs SystemTap userspace tracing benchmarks
Date: Wed, 16 Feb 2011 16:05:13 -0500	[thread overview]
Message-ID: <20110216210513.GB1835@Krystal> (raw)
In-Reply-To: <AANLkTinHcX05maso4UomNAXoXfk2cgmLdbJ4T2ikugPs@mail.gmail.com>

* Stefan Hajnoczi (stefanha at gmail.com) wrote:
> On Wed, Feb 16, 2011 at 6:50 PM, Roland McGrath <roland at redhat.com> wrote:
> > Stefan was referring to #4 in your taxonomy.
> >
> > It's indeed the case that what UST uses today is an always-there normal
> > C code sequence that loads global variables to decide whether to make
> > indirect function calls. ?I don't recall off hand how many layers of
> > function calls to the libust DSO and such there are in either the
> > disabled or enabled cases. ?At best, there is the always the overhead of
> > several instructions and at least one load in the hot code path, and the
> > i-cache pollution that goes with that.
> >
> > It's indeed the cast that what Systemtap uses today is a
> > sometimes-inserted normal breakpoint instruction, which is indeed a
> > software interrupt that requires kernel mediation. ?When disabled, there
> > is as close to zero overhead as you can have, being a tiny placeholder
> > instruction sequence (currently just one nop), so the runtime overhead
> > is under a cycle and the i-cache pollution is the smallest possible unit
> > (one instruction, being just one byte on x86).
> 
> Thanks for the explanations everyone.
> 
> I remember that DTrace also uses the software breakpoint method for
> userspace probes.  I think the key reason they choose this method is
> that it is the least invasive and does not require target process
> cooperation.

Yeah, but it's slow. :)

By the way, if the target process refuses to cooperate at some point (e.g.
crash), UST still keeps a handle on the shared memory map, so we can still
extract the buffers.

Another future direction we're looking into for UST is to add the ability to do
dynamic probing in userspace with the equivalent of the "fast tracepoints"
currently available in gdb and in the kernel: whenever possible, replace
instructions with a jump rather than a breakpoint to dynamically instrument
applications.

So with LD_PRELOAD and dynamic instrumentation, we won't require much
collaboration from the application.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




  reply	other threads:[~2011-02-16 21:05 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-15 15:53 Julien Desfossez
2011-02-15 16:25 ` William Cohen
2011-02-17 16:20   ` Julien Desfossez
2011-02-15 16:26 ` Frank Ch. Eigler
2011-02-15 16:54   ` Mathieu Desnoyers
2011-02-15 17:39     ` Frank Ch. Eigler
2011-02-15 22:25       ` Mathieu Desnoyers
2011-02-15 17:00   ` Stefan Hajnoczi
2011-02-15 17:04     ` Mathieu Desnoyers
2011-02-16 10:56     ` Mark Wielaard
2011-02-16 18:50       ` Roland McGrath
2011-02-16 20:00         ` [ltt-dev] Porting "jump labels" to userspace (was: Re: LTTng-UST vs SystemTap userspace tracing benchmarks) Mathieu Desnoyers
2011-02-16 20:04           ` Roland McGrath
2011-02-16 20:17             ` [ltt-dev] Porting "jump labels" to userspace David Daney
2011-02-16 20:39               ` Mathieu Desnoyers
2011-02-16 20:45                 ` Thomas Gleixner
2011-02-16 21:42                   ` Peter Zijlstra
2011-02-17 13:58                     ` Ingo Molnar
2011-02-16 20:14           ` David Daney
2011-02-16 20:36             ` Mathieu Desnoyers
2011-02-16 20:55         ` [ltt-dev] LTTng-UST vs SystemTap userspace tracing benchmarks Stefan Hajnoczi
2011-02-16 21:05           ` Mathieu Desnoyers [this message]
2011-02-16 21:16           ` Mark Wielaard
2011-02-15 17:03 ` Mark Wielaard
2011-02-16 15:30 ` Tom Tromey
2011-02-16 18:19   ` Roland McGrath
2011-02-17 17:33   ` Julien Desfossez
2011-02-17 19:11     ` Josh Stone
2011-02-17 19:33       ` Julien Desfossez
2011-02-17 19:47         ` Josh Stone

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=20110216210513.GB1835@Krystal \
    --to=mathieu.desnoyers@efficios.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox