From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: David Sharp <dhsharp@google.com>
Cc: linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Michael Rubin <mrubin@google.com>
Subject: Re: Benchmarks of kernel tracing options (ftrace, ktrace, lttng and perf)
Date: Thu, 28 Oct 2010 15:27:04 -0400 [thread overview]
Message-ID: <20101028192704.GA26131@Krystal> (raw)
In-Reply-To: <AANLkTi=6EBZeZ+56z_wbDuU1xTmC0saSTMDmqbqDS4Jr@mail.gmail.com>
* David Sharp (dhsharp@google.com) wrote:
[...]
> I hope this produces a fair comparison. I've detailed my steps below
> for all of the tracers in case there are improvements to be made.
>
[...]
> Results for amount of time to execute a tracepoint (includes previous results):
> ktrace: 200ns (old)
> ftrace: 224ns (old, w/ handcoded tracepoint, not syscall tracing)
> lttng: 449ns (new)
> perf: 1047ns (new)
>
> Also interesting:
> ftrace: 587ns (old, w/ syscall tracing)
> This just shows that syscall tracing is much slower than a normal tracepoint.
Hrm, not quite fair actually. LTTng enables a thread flag that causes
syscall_trace to be called on sycall entry/exit by default. Please try with the
following patch to remove the extra syscall overhead.
Thanks,
Mathieu
for google benchmarks: remove syscall tracing from LTTng modules
Syscall tracing is enabled by default when lttng is tracing, which causes the
full registers to be saved and a sycall_trace call upon syscall entry/exit.
This patch is for testing only.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
---
ltt-tracer.c | 2 --
1 file changed, 2 deletions(-)
Index: lttng-modules/ltt-tracer.c
===================================================================
--- lttng-modules.orig/ltt-tracer.c
+++ lttng-modules/ltt-tracer.c
@@ -839,7 +839,6 @@ int ltt_trace_alloc(const char *trace_na
if (list_empty(<t_traces.head)) {
mod_timer(<t_async_wakeup_timer,
jiffies + LTT_PERCPU_TIMER_INTERVAL);
- set_kernel_trace_flag_all_tasks();
}
list_add_rcu(&trace->list, <t_traces.head);
synchronize_trace();
@@ -917,7 +916,6 @@ static int _ltt_trace_destroy(struct ltt
list_del_rcu(&trace->list);
synchronize_trace();
if (list_empty(<t_traces.head)) {
- clear_kernel_trace_flag_all_tasks();
/*
* We stop the asynchronous delivery of reader wakeup, but
* we must make one last check for reader wakeups pending
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2010-10-28 19:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <AANLkTim8c+FLo11XJbTmTjiuucn-9UJD0Vui=fvUgCd+@mail.gmail.com>
[not found] ` <AANLkTikd6sawwJeBm76QLeowXj0GBAf=wpRVgG8x5MOp@mail.gmail.com>
[not found] ` <AANLkTi=Dw-dxkUgYLZYBKb5sGYcdGcpS0OH_fEHW51Jr@mail.gmail.com>
2010-10-28 18:20 ` Benchmarks of kernel tracing options (ftrace, ktrace, lttng and perf) David Sharp
2010-10-28 19:27 ` Mathieu Desnoyers [this message]
2010-10-28 23:24 ` Michael Rubin
2010-10-29 4:37 ` Mathieu Desnoyers
2010-11-16 20:28 ` Mathieu Desnoyers
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=20101028192704.GA26131@Krystal \
--to=mathieu.desnoyers@efficios.com \
--cc=akpm@linux-foundation.org \
--cc=dhsharp@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mrubin@google.com \
--cc=rostedt@goodmis.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.