* [Qemu-devel] [PATCH] simpletrace: Inline runtime state check
@ 2010-10-19 14:14 Jan Kiszka
2010-10-19 15:18 ` [Qemu-devel] " Stefan Hajnoczi
0 siblings, 1 reply; 2+ messages in thread
From: Jan Kiszka @ 2010-10-19 14:14 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: qemu-devel
Instead of preparing all traced args, jumping into the common trace
function, even collecting a timestamp, do the check if a particular
tracepoint is enabled inline. Also, mark the enabled case unlikely to
motivate the compiler to push the trace code out of the fastpath.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
simpletrace.c | 4 ----
tracetool | 7 +++++--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/simpletrace.c b/simpletrace.c
index deb1e07..224e4ab 100644
--- a/simpletrace.c
+++ b/simpletrace.c
@@ -148,10 +148,6 @@ static void trace(TraceEventID event, uint64_t x1, uint64_t x2, uint64_t x3,
*/
clock_gettime(CLOCK_MONOTONIC, &ts);
- if (!trace_list[event].state) {
- return;
- }
-
rec->event = event;
rec->timestamp_ns = ts.tv_sec * 1000000000LL + ts.tv_nsec;
rec->x1 = x1;
diff --git a/tracetool b/tracetool
index 7010858..9532409 100755
--- a/tracetool
+++ b/tracetool
@@ -146,6 +146,8 @@ linetoh_begin_simple()
{
cat <<EOF
#include "simpletrace.h"
+
+extern TraceEvent trace_list[];
EOF
simple_event_num=0
@@ -179,7 +181,9 @@ linetoh_simple()
cat <<EOF
static inline void trace_$name($args)
{
- trace$argc($trace_args);
+ if (unlikely(trace_list[$simple_event_num].state)) {
+ trace$argc($trace_args);
+ }
}
EOF
@@ -190,7 +194,6 @@ linetoh_end_simple()
{
cat <<EOF
#define NR_TRACE_EVENTS $simple_event_num
-extern TraceEvent trace_list[NR_TRACE_EVENTS];
EOF
}
--
1.7.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Qemu-devel] Re: [PATCH] simpletrace: Inline runtime state check
2010-10-19 14:14 [Qemu-devel] [PATCH] simpletrace: Inline runtime state check Jan Kiszka
@ 2010-10-19 15:18 ` Stefan Hajnoczi
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Hajnoczi @ 2010-10-19 15:18 UTC (permalink / raw)
To: Jan Kiszka; +Cc: qemu-devel
On Tue, Oct 19, 2010 at 04:14:09PM +0200, Jan Kiszka wrote:
> Instead of preparing all traced args, jumping into the common trace
> function, even collecting a timestamp, do the check if a particular
> tracepoint is enabled inline. Also, mark the enabled case unlikely to
> motivate the compiler to push the trace code out of the fastpath.
>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
> simpletrace.c | 4 ----
> tracetool | 7 +++++--
> 2 files changed, 5 insertions(+), 6 deletions(-)
Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-10-19 15:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-19 14:14 [Qemu-devel] [PATCH] simpletrace: Inline runtime state check Jan Kiszka
2010-10-19 15:18 ` [Qemu-devel] " Stefan Hajnoczi
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 NNTP newsgroup(s).