This is the mail archive of the
systemtap@sources.redhat.com
mailing list for the systemtap project.
Re: [PATCH] djprobe: Low overhead probe method
- From: Masami Hiramatsu <hiramatu at sdl dot hitachi dot co dot jp>
- To: William Cohen <wcohen at redhat dot com>
- Cc: Roland McGrath <roland at redhat dot com>, SystemTAP <systemtap at sources dot redhat dot com>, sugita at sdl dot hitachi dot co dot jp, Satoshi Oshima <soshima at redhat dot com>, aoki at sdl dot hitachi dot co dot jp, lkst-develop at lists dot sourceforge dot net
- Date: Thu, 14 Jul 2005 17:31:51 +0900
- Subject: Re: [PATCH] djprobe: Low overhead probe method
- References: <20050713174731.07E5B1809FC@magilla.sf.frob.com> <42D58198.9020605@redhat.com>
Hi, William
William Cohen wrote:
> Djprobes looks like a good idea to reduce the overhead of the probes.
Thank you!
> Ariel Tamches thesis discusses kernelinst in great detail and is
> available from:
>
> http://www.cs.wisc.edu/~tamches/
>
>
> Looking though the djprobe performance evaluation report list 7 shows a
> negative overhead for djprobes on Pentium M. Is there some improvement
> in performance due to layout? That certainly seems odd.
No, it does not due to layout. On Pentium M, the performance of gettimeofday
is certainly improved by using djprobe. I agree that is odd.
I think that was caused by the cache miss. In other words, it just so
happened that the djprobe code inhibited some cache contentions.
I will try to change probe insertion address and measure overhead again.
> Is the gtod benchmark that much slower on AMD64 and Pentium M than
> Pentium4 (2232 and 2500 vs 230microseconds)?
Yes, it is. On Pentium M and AMD64, gettimeofday is so slow.
I guess it depends on the implementation of cache and branch prediction
of processor.
> Could this be due to clock
> scaling?
No, cpufreq is disabled. And, I did not use any clocks except system
clock which provided by gettimeofday.
pseudo-code of gtodbench is below:
gtodbench () {
count = 0;
start = gettimeofday();
do {
count ++;
end = gettimeofday();
} while (start + 10secs > end );
result = (end - start) / count;
}
This is free from any hardware clocks.
Best Regards,
--
Masami HIRAMATSU
2nd Research Dept.
Hitachi, Ltd., Systems Development Laboratory
E-mail: hiramatu@sdl.hitachi.co.jp