From: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
To: Avishay Traeger <atraeger@cs.sunysb.edu>
Cc: prasanna@in.ibm.com, anil.s.keshavamurthy@intel.com,
davem@davemloft.net, linux-kernel@vger.kernel.org
Subject: Re: KPROBES: Instrumenting a function's call site
Date: Wed, 26 Sep 2007 14:33:57 +0530 [thread overview]
Message-ID: <20070926090357.GA7651@in.ibm.com> (raw)
In-Reply-To: <20070926043933.GA6460@in.ibm.com>
On Wed, Sep 26, 2007 at 10:09:33AM +0530, Ananth N Mavinakayanahalli wrote:
> On Tue, Sep 25, 2007 at 06:12:38PM -0400, Avishay Traeger wrote:
> > Hello,
> > I am trying to use kprobes to measure the latency of a function by
> > instrumenting its call site. Basically, I find the call instruction,
> > and insert a kprobe with a pre-handler and post-handler at that point.
> > The pre-handler measures the latency (reads the TSC counter). The
> > post-handler measures the latency again, and subtracts the value that
> > was read in the pre-handler to compute the total latency of the called
> > function.
>
> This sounds ok...
Thinking further, its not ok :(
> > So to measure the latency of foo(), I basically want kprobes to do this:
> > pre_handler();
> > foo();
> > post_handler();
> >
> > The problem is that the latencies that I am getting are consistently low
> > (~10,000 cycles). When I manually instrument the functions, the latency
> > is about 20,000,000 cycles. Clearly something is not right here.
What happens when the "call" is singlestepped is that the instruction
pointer is moved to the call target. That explains the lower latency you
are seeing. You'll need to do something along the lines I suggested in
the earlier mail.
Ananth
next prev parent reply other threads:[~2007-09-26 9:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-25 22:12 KPROBES: Instrumenting a function's call site Avishay Traeger
2007-09-26 4:39 ` Ananth N Mavinakayanahalli
2007-09-26 9:03 ` Ananth N Mavinakayanahalli [this message]
2007-09-26 16:09 ` Avishay Traeger
2007-09-26 17:27 ` Ananth N Mavinakayanahalli
2007-09-26 17:35 ` Avishay Traeger
2007-09-26 16:52 ` Abhishek Sagar
2007-09-26 17:28 ` Keshavamurthy, Anil S
2007-09-26 17:37 ` Avishay Traeger
2007-11-08 19:42 ` Avishay Traeger
2007-11-12 10:27 ` Ananth N Mavinakayanahalli
2007-09-26 16:37 ` Abhishek Sagar
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=20070926090357.GA7651@in.ibm.com \
--to=ananth@in.ibm.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=atraeger@cs.sunysb.edu \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=prasanna@in.ibm.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