public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
  • [parent not found: <20080627182754.GB7549@mit.edu>]
  • * DTrace
    @ 2008-06-30 13:57 Frank Ch. Eigler
      2008-06-30 19:00 ` [Ksummit-2008-discuss] DTrace Grant Grundler
                       ` (2 more replies)
      0 siblings, 3 replies; 52+ messages in thread
    From: Frank Ch. Eigler @ 2008-06-30 13:57 UTC (permalink / raw)
      To: ksummit-2008-discuss; +Cc: systemtap
    
    
    Hi -
    
    
    Please forgive me for "crashing" the discussion party here.  I would
    like to clarify some systemtap-related issues that people have raised.
    (I'm one of its developers.)  I'll just list individual points,
    roughly in order they were raised.  For a fuller treatment of any of
    the topics, please involve our public <systemtap@sources.redhat.com>
    mailing list.
    
    
    * postgres, other dtrace-probe-instrumented userspace programs
    
      We aim to piggyback on these efforts by reusing the dtrace
      instrumentation calls embedded into postgres etc., if at all
      possible.
    
    * "klunky and prone to break in unexpected ways"
    
      There's a germ of truth there, but OTOH the case James ran into
      involved complications beyond normal symbolic debugging too
      (possibly having to search separately compiled modules for
      definitions of opaque struct-pointer types).  We're working on it;
      our bug/feature list is in public bugzilla.
    
    * "unhappy week with dwarf"
    
      Guilty as charged. :-)
    
    * kprobes, markers
    
      Performance of kprobes-based probes is about 1 us per hit overhead.
      Markers are on the order of tens of nanoseconds, which makes a huge
      difference for frequently-hit probes.  We'd be happy to interface to
      other event sources like ftrace or whatever, as long as they provide
      suitable kernel-module-accessible APIs.
    
    * user-space probing
    
      We're finally getting very close in this.  Yes, it'd use the IBM
      uprobes prototype above the Red Hat utrace work as a lower layer,
      which we hope get upstream as soon as possible.  It will behave
      analogously to dtrace: executing probes in kernel space.  If it can
      be made safe (and we think it can), it's a huge performance win over
      trying to do it in userspace (with some gang of debugging processes
      or whatever).
    
    * oprofile
    
      It's a fine special-purpose tool.  We hope to hook into the same
      sorts of underlying hardware performance counters to enable the same
      profiling capability in systemtap - except well integrated with the
      rest of the probing events / scripts.  perfmon2 upstream would be
      very helpful.
    
    * dtrace "just works"
    
      Yeah, so I hear, but think about how different their target
      environment is.  Their kernel hardly changes (several fixed APIs,
      ABIs): this has huge implications.  Their kernel was willing to
      insert probes (~ markers), a bunch of build system changes (debug
      info subset transcribing).  Here in linux land, we suffer
      multifaceted tensions and it is hard to go toward a goal without
      obstructions (well-meaning as they may be).
    
      A bunch of third-party scripts are often conflated with "dtrace",
      which is just a matter of growing the user community enough, and
      giving them a good tool to build on top of.  A growing set of
      runnable end-user scripts is already packaged with systemtap,
      intended for use by nonexperts, more help (e.g. concise problem
      statements about what you'd like to measure/see) would be welcome.
    
    * integrating systemtap runtime into kernel
    
      We did some analysis about how much of the runtime code contains
      novel & relevant code to the kernel.  We came up with a fraction
      like 20% (IIRC; still searching for a link to the thread).  Some of
      the code is indeed in need of some cleanup love.  
    
      Some of it has been necessary to work around kernel disruptions
      (e.g., unexporting stuff like kallsyms_lookup).  The parts that are
      deeply kernel-version-sensitive (and would thus benefit from your
      maintenance) are quite small.  We're still open to trying to pursue
      copying/upstreaming some of this code into the kernel.
    
    * tapsets
    
      Theodore is mistaken that we are deflecting the job of tapset (probe
      macro; abstracting architecture and kernel version-change -
      $foo->bar->baz, function names) authorship.  We have asked for help,
      and have received a little, but the group has in fact authored a
      growing collection of this stuff.
    
      We would welcome having tapsets be included with the kernel and
      cared for by you guys.
    
    * debuginfo
    
      Yes, it's very helpful & necessary if one wants to place probes at
      just about any statement and extract just about any data value.
      It's the same prerequisite that crash or kgdb would have, since we
      operate at a similar level of object/source code visibility.  Other
      distros are learning to package this admittedly bulky data up, so
      it'll be a matter of a largish download for distro users. Kernel
      developers will of course have the data generated locally already.
    
      We've recently gained the ability to work on symbol table level data
      only.  It's a compromise technology: it shrinks the installation
      footprint but we get only function-entry probes; we lose data
      typing; can only get at ABI-dictated positional integral arguments.
    
    * systemtap building
    
      The only thing unusual with building the thing is the use of the
      elfutils library to parse elf/dwarf data; links to that are provided
      and one can link to a private copy if the system lacks it.
    
    * systemtap releases
    
      True, we've been spotty with formal releases, though they are
      archived and available, and we're moving to a more regular release
      schedule very shortly.  The weekly snapshots have been good (except
      a recent unfortunate regression that hits 2.6.25 kernels
      particularly badly - that's holding up the new release plans).
    
    
    Thanks for reading; sorry about the length.
    
    
    - FChE
    
    ^ permalink raw reply	[flat|nested] 52+ messages in thread

    end of thread, other threads:[~2008-07-08 23:32 UTC | newest]
    
    Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
    -- links below jump to the message on this page --
         [not found] <20080627150424.GB14894@parisc-linux.org>
         [not found] ` <1214580213.3394.40.camel@localhost.localdomain>
         [not found]   ` <20080627155018.GC14894@parisc-linux.org>
         [not found]     ` <1214583502.7698.15.camel@weaponx>
         [not found]       ` <20080627163056.GB1416@lst.de>
         [not found]         ` <20080628072605.GA505@in.ibm.com>
         [not found]           ` <20080629084002.GA24131@lst.de>
         [not found]             ` <20080630051034.GA4970@in.ibm.com>
         [not found]               ` <20080630112913.GA18817@lst.de>
    2008-06-30 19:27                 ` [Ksummit-2008-discuss] DTrace Frank Ch. Eigler
    2008-07-01  1:21                   ` Jim Keniston
         [not found]                   ` <20080706123414.GA9265@lst.de>
    2008-07-06 15:47                     ` Frank Ch. Eigler
    2008-07-06 16:36                       ` Evgeniy Polyakov
    2008-07-06 18:05                         ` Frank Ch. Eigler
    2008-07-06 18:24                           ` Evgeniy Polyakov
    2008-07-06 21:46                             ` Frank Ch. Eigler
    2008-07-06 22:47                               ` Karen Shaeffer
    2008-07-06 23:15                                 ` Frank Ch. Eigler
    2008-07-07  5:59                               ` Evgeniy Polyakov
    2008-07-07 11:19                                 ` Frank Ch. Eigler
         [not found]   ` <20080627182754.GB7549@mit.edu>
         [not found]     ` <1214597135.3394.82.camel@localhost.localdomain>
         [not found]       ` <aday74qlh08.fsf@cisco.com>
         [not found]         ` <4865B111.2040307@redhat.com>
         [not found]           ` <adavdzujh2u.fsf@cisco.com>
         [not found]             ` <20080704200055.GA11232@synapse.neuralscape.com>
         [not found]               ` <20080704224424.GA12454@synapse.neuralscape.com>
         [not found]                 ` <1215273663.3439.34.camel@localhost.localdomain>
    2008-07-06 23:33                   ` Frank Ch. Eigler
    2008-07-07 14:35                     ` James Bottomley
    2008-07-07 15:02                     ` James Bottomley
    2008-06-30 13:57 DTrace Frank Ch. Eigler
    2008-06-30 19:00 ` [Ksummit-2008-discuss] DTrace Grant Grundler
    2008-06-30 19:40 ` Theodore Tso
    2008-06-30 20:00   ` Frank Ch. Eigler
    2008-06-30 20:19     ` Theodore Tso
    2008-06-30 21:12       ` Arnaldo Carvalho de Melo
    2008-06-30 23:02         ` David Miller
    2008-06-30 21:13       ` James Bottomley
    2008-06-30 22:10       ` Frank Ch. Eigler
    2008-07-01  2:42         ` Theodore Tso
    2008-07-01  7:08           ` Roland McGrath
    2008-07-01 10:15             ` Theodore Tso
    2008-07-01 11:04               ` Sam Ravnborg
    2008-07-01 12:13                 ` Theodore Tso
    2008-07-02 20:27                   ` Sam Ravnborg
    2008-07-01 20:06               ` Roland McGrath
    2008-07-01 23:13                 ` Theodore Tso
    2008-07-02  2:23                   ` Frank Ch. Eigler
    2008-07-02 19:27                   ` Frank Ch. Eigler
    2008-07-02 20:08                   ` Joel Becker
    2008-07-02 20:17                     ` J. Bruce Fields
    2008-07-02 20:41                       ` Frank Ch. Eigler
    2008-07-02 21:19                       ` H. Peter Anvin
    2008-07-02 21:30                       ` Theodore Tso
    2008-07-02 21:46                         ` J. Bruce Fields
    2008-07-05  9:46                   ` Peter Zijlstra
    2008-07-05 10:07                     ` Christoph Hellwig
    2008-07-05 12:12                       ` Frank Ch. Eigler
    2008-07-05 18:08                         ` Christoph Hellwig
    2008-07-05 13:50                       ` James Bottomley
    2008-07-05 18:08                         ` Christoph Hellwig
    2008-07-05 18:05                       ` K.Prasad
    2008-07-07 14:36                         ` Christoph Hellwig
    2008-07-07 17:44                           ` K.Prasad
    2008-07-05 12:34                     ` Theodore Tso
    2008-07-01  5:29   ` Ananth N Mavinakayanahalli
    2008-06-30 19:59 ` James Bottomley
    2008-06-30 23:52   ` Masami Hiramatsu
    2008-07-08 23:32   ` Eric W. Biederman
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).