public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@redhat.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: "Frank Ch. Eigler" <fche@redhat.com>,
	        ksummit-2008-discuss@lists.linux-foundation.org,
	        systemtap@sources.redhat.com
Subject: Re: [Ksummit-2008-discuss] DTrace
Date: Mon, 30 Jun 2008 23:52:00 -0000	[thread overview]
Message-ID: <48694BBF.5030202@redhat.com> (raw)
In-Reply-To: <1214853732.3381.35.camel@localhost.localdomain>

Hi,

James Bottomley wrote:
> On Sun, 2008-06-29 at 21:04 -0400, Frank Ch. Eigler wrote:
>> * 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.
> 
> There were two specific latencies of concern to the financial trading
> house type end user: One was the latency from execution to run.  This is
> caused mostly by the module build and insertion.  I really can't see
> this getting better except by divorcing systemtap from having to use the
> whole of the kernel build infrastructure.  To do that, we need to begin
> putting a lot of the C fragments that make up that infrastructure into
> the kernel to lessen the load.  It would actually be nice finally to get
> to the point where you simply link the probe routines with a special
> module stub (built as part of the kernel) and insert it.

I agree, compiling systemtap runtime code to an independent module(or
object file) could reduce building time.
(However, I think it depends on what script you write. if you probe all
of sys_* functions, function searching time becomes long)

> The other is the probe execution latency.  Since the institutions are
> tracing transactions on the order of milliseconds, microsecond latencies
> in the probes do give them cause for concern (it only takes a few probe
> points to add up to a significant perturbation).

Marker has another benefit, it enables you to probe irq handler.
Since Kprobe uses exceptions and isn't recursive, it can't probe
irq related functions. Marker can probe it, because it doesn't use
any exceptions.

[...]
>> * 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.
> 
> Actually, this one is an example of a wrong approach.  What you're
> effectively doing is trying to implement an ABI for staprun in these
> files (as well as various helpers for the modules).  The work around for
> kallsyms_lookup is pretty horrible as well ... expecially as the kernel
> has its own address to symbol string converter.
> 
> This is a lot of what needs to be cleaned up and simplified.  The
> interface between systemtap and the kernel is essentially a private ABI
> and we should treat it as such, so all the helpers for the modules and
> the necessary implementers of the ABI should be in kernel ... there
> shouldn't be any (if done right) carried around as C fragments with
> kernel version ifdefs ...

And also, some of them should be isolated from the kernel itself.
For example, systemtap can not call do_gettimeofday() because it
is not recursive. So, now, systemtap has its own time.c.

Thank you,

-- 
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division

e-mail: mhiramat@redhat.com

  reply	other threads:[~2008-06-30 21:12 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 21:40                     ` Potential Systemtap topics for the Kernel Summit Theodore Tso
2008-07-02 21:51                       ` [Ksummit-2008-discuss] " Jonathan Corbet
2008-07-02 23:41                         ` Arnaldo Carvalho de Melo
2008-07-02 22:38                       ` Masami Hiramatsu
2008-07-02 22:54                       ` [Ksummit-2008-discuss] " Stephen Hemminger
2008-07-03  0:44                         ` Ulrich Drepper
2008-07-03  1:02                           ` H. Peter Anvin
2008-07-03  1:50                             ` Theodore Tso
2008-07-03  1:51                             ` Ulrich Drepper
2008-07-02 20:08                   ` [Ksummit-2008-discuss] DTrace 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 [this message]
2008-07-08 23:32   ` Eric W. Biederman
     [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                 ` 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

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=48694BBF.5030202@redhat.com \
    --to=mhiramat@redhat.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=fche@redhat.com \
    --cc=ksummit-2008-discuss@lists.linux-foundation.org \
    --cc=systemtap@sources.redhat.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).