* [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x
@ 2013-10-14 18:35 Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script " Mohamad Gebai
` (4 more replies)
0 siblings, 5 replies; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-14 18:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Mohamad Gebai, alex.bennee
Version 3
* Change component name to avoid potential namespace collision with another
project.
* Update ust documentation in docs/tracing.txt.
* Add ust generated files to .gitignore.
Mohamad Gebai (5):
Fix configure script for LTTng 2.x
Modified the tracetool framework for LTTng 2.x.
Adapt Makefiles to the new LTTng ust interface.
Update documentation for LTTng ust tracing
Add ust generated files to .gitignore
.gitignore | 2 +
Makefile | 5 ++
configure | 9 ++--
docs/tracing.txt | 31 +++++++++++
scripts/tracetool/backend/events.py | 44 ++++++++++++++++
scripts/tracetool/backend/ust.py | 82 ++++++------------------------
scripts/tracetool/format/ust_events_c.py | 30 +++++++++++
scripts/tracetool/format/ust_events_h.py | 57 +++++++++++++++++++++
trace/Makefile.objs | 29 ++++++++++-
9 files changed, 216 insertions(+), 73 deletions(-)
create mode 100644 scripts/tracetool/format/ust_events_c.py
create mode 100644 scripts/tracetool/format/ust_events_h.py
--
1.7.10.4
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script for LTTng 2.x
2013-10-14 18:35 [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x Mohamad Gebai
@ 2013-10-14 18:35 ` Mohamad Gebai
2013-10-16 12:06 ` Alex Bennée
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 2/5] Modified the tracetool framework " Mohamad Gebai
` (3 subsequent siblings)
4 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-14 18:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Mohamad Gebai, alex.bennee
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
---
configure | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/configure b/configure
index 23dbaaf..627054c 100755
--- a/configure
+++ b/configure
@@ -3287,15 +3287,14 @@ fi
# For 'ust' backend, test if ust headers are present
if test "$trace_backend" = "ust"; then
cat > $TMPC << EOF
-#include <ust/tracepoint.h>
-#include <ust/marker.h>
+#include <lttng/tracepoint.h>
int main(void) { return 0; }
EOF
if compile_prog "" "" ; then
- LIBS="-lust -lurcu-bp $LIBS"
- libs_qga="-lust -lurcu-bp $libs_qga"
+ LIBS="-llttng-ust -lurcu-bp -ldl $LIBS"
+ libs_qga="-llttng-ust -lurcu-bp -ldl $libs_qga"
else
- error_exit "Trace backend 'ust' missing libust header files"
+ error_exit "Trace backend 'ust' missing lttng-ust header files"
fi
fi
--
1.7.10.4
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [RFC PATCH v3 2/5] Modified the tracetool framework for LTTng 2.x.
2013-10-14 18:35 [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script " Mohamad Gebai
@ 2013-10-14 18:35 ` Mohamad Gebai
2013-10-16 12:06 ` Alex Bennée
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface Mohamad Gebai
` (2 subsequent siblings)
4 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-14 18:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Mohamad Gebai, alex.bennee
* A new format is required to generate definitions for ust tracepoints.
Files ust_events_h.py and ust_events_c.py define common macros, while
new function ust_events_h in events.py does the actual definition of
each tracepoint.
* ust.py generates the new interface for calling userspace tracepoints
with LTTng 2.x, replacing trace_name(args) to tracepoint(name, args).
* As explained in ust_events_c.py, -Wredundant-decls gives a warning
when compiling with gcc 4.7 or older. This is specific to lttng-ust so
for now use a pragma clause to avoid getting a warning.
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
---
scripts/tracetool/backend/events.py | 44 ++++++++++++++++
scripts/tracetool/backend/ust.py | 82 ++++++------------------------
scripts/tracetool/format/ust_events_c.py | 30 +++++++++++
scripts/tracetool/format/ust_events_h.py | 57 +++++++++++++++++++++
4 files changed, 147 insertions(+), 66 deletions(-)
create mode 100644 scripts/tracetool/format/ust_events_c.py
create mode 100644 scripts/tracetool/format/ust_events_h.py
diff --git a/scripts/tracetool/backend/events.py b/scripts/tracetool/backend/events.py
index 5afce3e..1691c90 100644
--- a/scripts/tracetool/backend/events.py
+++ b/scripts/tracetool/backend/events.py
@@ -6,6 +6,8 @@ Generic event description.
This is a dummy backend to establish appropriate frontend/backend compatibility
checks.
+
+Generates tracepoint definitions for LTTng userspace tracing when using ust as a backend.
"""
__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>"
@@ -16,8 +18,50 @@ __maintainer__ = "Stefan Hajnoczi"
__email__ = "stefanha@linux.vnet.ibm.com"
+from tracetool import out
+
def events_h(events):
pass
def events_c(events):
pass
+
+def ust_events_c(events):
+ pass
+
+def ust_events_h(events):
+ for e in events:
+ if len(e.args) > 0:
+ out('TRACEPOINT_EVENT(',
+ ' qemu,',
+ ' %(name)s,',
+ ' TP_ARGS(%(args)s),',
+ ' TP_FIELDS(',
+ name = e.name,
+ args = ", ".join(", ".join(i) for i in e.args),
+ )
+
+ for t,n in e.args:
+ if ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t):
+ out(' ctf_integer(' + t + ', ' + n + ', ' + n + ')')
+ elif ('double' in t) or ('float' in t):
+ out(' ctf_float(' + t + ', ' + n + ', ' + n + ')')
+ elif ('char *' in t) or ('char*' in t):
+ out(' ctf_string(' + n + ', ' + n + ')')
+ elif ('void *' in t) or ('void*' in t):
+ out(' ctf_integer_hex(unsigned long, ' + n + ', ' + n + ')')
+
+ out(' )',
+ ')',
+ '')
+
+ else:
+ out('TRACEPOINT_EVENT(',
+ ' qemu,',
+ ' %(name)s,',
+ ' TP_ARGS(void),',
+ ' TP_FIELDS()',
+ ')',
+ '',
+ name = e.name,
+ )
diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/ust.py
index ea36995..10c0875 100644
--- a/scripts/tracetool/backend/ust.py
+++ b/scripts/tracetool/backend/ust.py
@@ -18,76 +18,26 @@ from tracetool import out
PUBLIC = True
-
def c(events):
- out('#include <ust/marker.h>',
- '#undef mutex_lock',
- '#undef mutex_unlock',
- '#undef inline',
- '#undef wmb',
- '#include "trace.h"')
+ pass
+
+def h(events):
+ out('#include <lttng/tracepoint.h>',
+ '#include "trace/generated-ust-provider.h"',
+ '')
for e in events:
argnames = ", ".join(e.args.names())
if len(e.args) > 0:
- argnames = ', ' + argnames
-
- out('DEFINE_TRACE(ust_%(name)s);',
- '',
- 'static void ust_%(name)s_probe(%(args)s)',
- '{',
- ' trace_mark(ust, %(name)s, %(fmt)s%(argnames)s);',
- '}',
- name = e.name,
- args = e.args,
- fmt = e.fmt,
- argnames = argnames,
- )
-
- else:
- out('DEFINE_TRACE(ust_%(name)s);',
- '',
- 'static void ust_%(name)s_probe(%(args)s)',
- '{',
- ' trace_mark(ust, %(name)s, UST_MARKER_NOARGS);',
- '}',
- name = e.name,
- args = e.args,
- )
-
- # register probes
- out('',
- 'static void __attribute__((constructor)) trace_init(void)',
- '{')
-
- for e in events:
- out(' register_trace_ust_%(name)s(ust_%(name)s_probe);',
+ argnames = ", " + argnames
+
+ out('static inline void trace_%(name)s(%(args)s)',
+ '{',
+ ' tracepoint(qemu, %(name)s%(tp_args)s);'
+ '',
+ '}',
+ '',
name = e.name,
+ args = e.args,
+ tp_args = argnames,
)
-
- out('}')
-
-
-def h(events):
- out('#include <ust/tracepoint.h>',
- '#undef mutex_lock',
- '#undef mutex_unlock',
- '#undef inline',
- '#undef wmb')
-
- for e in events:
- if len(e.args) > 0:
- out('DECLARE_TRACE(ust_%(name)s, TP_PROTO(%(args)s), TP_ARGS(%(argnames)s));',
- '#define trace_%(name)s trace_ust_%(name)s',
- name = e.name,
- args = e.args,
- argnames = ", ".join(e.args.names()),
- )
-
- else:
- out('_DECLARE_TRACEPOINT_NOARGS(ust_%(name)s);',
- '#define trace_%(name)s trace_ust_%(name)s',
- name = e.name,
- )
-
- out()
diff --git a/scripts/tracetool/format/ust_events_c.py b/scripts/tracetool/format/ust_events_c.py
new file mode 100644
index 0000000..71328f3
--- /dev/null
+++ b/scripts/tracetool/format/ust_events_c.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""
+Generate .c for LTTng ust event description.
+"""
+
+__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>"
+__copyright__ = "Copyright 2012, Lluís Vilanova <vilanova@ac.upc.edu>"
+__license__ = "GPL version 2 or (at your option) any later version"
+
+__maintainer__ = "Stefan Hajnoczi"
+__email__ = "stefanha@linux.vnet.ibm.com"
+
+
+from tracetool import out
+
+
+def begin(events):
+ out('/* This file is autogenerated by tracetool, do not edit. */',
+ '',
+ '#define TRACEPOINT_DEFINE',
+ '#define TRACEPOINT_CREATE_PROBES',
+ '',
+ '/* If gcc version 4.7 or older is used, LTTng ust gives a warning when compiling with',
+ ' -Wredundant-decls.',
+ ' */',
+ '#pragma GCC diagnostic ignored "-Wredundant-decls"',
+ '',
+ '#include "generated-ust-provider.h"')
diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/format/ust_events_h.py
new file mode 100644
index 0000000..b8e3de1
--- /dev/null
+++ b/scripts/tracetool/format/ust_events_h.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""
+Generate .h for LTTng ust event description.
+"""
+
+__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>"
+__copyright__ = "Copyright 2012, Lluís Vilanova <vilanova@ac.upc.edu>"
+__license__ = "GPL version 2 or (at your option) any later version"
+
+__maintainer__ = "Stefan Hajnoczi"
+__email__ = "stefanha@linux.vnet.ibm.com"
+
+
+from tracetool import out
+
+
+def begin(events):
+ out('/* This file is autogenerated by tracetool, do not edit. */',
+ '',
+ '#undef TRACEPOINT_PROVIDER',
+ '#define TRACEPOINT_PROVIDER qemu',
+ '',
+ '#undef TRACEPOINT_INCLUDE_FILE',
+ '#define TRACEPOINT_INCLUDE_FILE ./generated-ust-provider.h',
+ '',
+ '#if !defined (TRACE__GENERATED_UST_H) || defined(TRACEPOINT_HEADER_MULTI_READ)',
+ '#define TRACE__GENERATED_UST_H',
+ '',
+ '#include "qemu-common.h"',
+ '#include <lttng/tracepoint.h>',
+ '',
+ '/*',
+ ' * LTTng ust 2.0 does not allow you to use TP_ARGS(void) for tracepoints',
+ ' * requiring no arguments. We define these macros introduced in more recent'
+ ' * versions of LTTng ust as a workaround',
+ ' */',
+ '#ifndef _TP_EXPROTO1',
+ '#define _TP_EXPROTO1(a) void',
+ '#endif',
+ '#ifndef _TP_EXDATA_PROTO1',
+ '#define _TP_EXDATA_PROTO1(a) void *__tp_data',
+ '#endif',
+ '#ifndef _TP_EXDATA_VAR1',
+ '#define _TP_EXDATA_VAR1(a) __tp_data',
+ '#endif',
+ '#ifndef _TP_EXVAR1',
+ '#define _TP_EXVAR1(a)',
+ '#endif',
+ '')
+
+def end(events):
+ out('#endif /* TRACE__GENERATED_UST_H */',
+ '',
+ '/* This part must be outside ifdef protection */',
+ '#include <lttng/tracepoint-event.h>')
--
1.7.10.4
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface.
2013-10-14 18:35 [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script " Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 2/5] Modified the tracetool framework " Mohamad Gebai
@ 2013-10-14 18:35 ` Mohamad Gebai
2013-10-16 12:08 ` Alex Bennée
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 5/5] Add ust generated files to .gitignore Mohamad Gebai
4 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-14 18:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Mohamad Gebai, alex.bennee
Add generation of new files for LTTng ust.
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
---
Makefile | 5 +++++
trace/Makefile.objs | 29 +++++++++++++++++++++++++++--
2 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 60fb87e..0c797c5 100644
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,11 @@ GENERATED_HEADERS += trace/generated-tracers-dtrace.h
endif
GENERATED_SOURCES += trace/generated-tracers.c
+ifeq ($(TRACE_BACKEND),ust)
+GENERATED_HEADERS += trace/generated-ust-provider.h
+GENERATED_SOURCES += trace/generated-ust.c
+endif
+
# Don't try to regenerate Makefile or configure
# We don't generate any of them
Makefile: ;
diff --git a/trace/Makefile.objs b/trace/Makefile.objs
index 3b88e49..00880b3 100644
--- a/trace/Makefile.objs
+++ b/trace/Makefile.objs
@@ -1,9 +1,33 @@
# -*- mode: makefile -*-
######################################################################
+# Auto-generated event descriptions for LTTng ust code
+
+ifeq ($(TRACE_BACKEND),ust)
+$(obj)/generated-ust-provider.h: $(obj)/generated-ust-provider.h-timestamp
+$(obj)/generated-ust-provider.h-timestamp: $(SRC_PATH)/trace-events
+ $(call quiet-command,$(TRACETOOL) \
+ --format=ust-events-h \
+ --backend=events \
+ < $< > $@," GEN $(patsubst %-timestamp,%,$@)")
+ @cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
+
+$(obj)/generated-ust.c: $(obj)/generated-ust.c-timestamp $(BUILD_DIR)/config-host.mak
+$(obj)/generated-ust.c-timestamp: $(SRC_PATH)/trace-events
+ $(call quiet-command,$(TRACETOOL) \
+ --format=ust-events-c \
+ --backend=events \
+ < $< > $@," GEN $(patsubst %-timestamp,%,$@)")
+ @cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
+
+ust_provider=$(obj)/generated-ust-provider.h
+ust=$(obj)/generated-ust.c
+endif
+
+######################################################################
# Auto-generated event descriptions
-$(obj)/generated-events.h: $(obj)/generated-events.h-timestamp
+$(obj)/generated-events.h: $(obj)/generated-events.h-timestamp $(ust_provider)
$(obj)/generated-events.h-timestamp: $(SRC_PATH)/trace-events
$(call quiet-command,$(TRACETOOL) \
--format=events-h \
@@ -11,7 +35,7 @@ $(obj)/generated-events.h-timestamp: $(SRC_PATH)/trace-events
< $< > $@," GEN $(patsubst %-timestamp,%,$@)")
@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
-$(obj)/generated-events.c: $(obj)/generated-events.c-timestamp $(BUILD_DIR)/config-host.mak
+$(obj)/generated-events.c: $(obj)/generated-events.c-timestamp $(BUILD_DIR)/config-host.mak $(ust)
$(obj)/generated-events.c-timestamp: $(SRC_PATH)/trace-events
$(call quiet-command,$(TRACETOOL) \
--format=events-c \
@@ -77,5 +101,6 @@ util-obj-$(CONFIG_TRACE_DEFAULT) += default.o
util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o
util-obj-$(CONFIG_TRACE_STDERR) += stderr.o
util-obj-$(CONFIG_TRACE_FTRACE) += ftrace.o
+util-obj-$(CONFIG_TRACE_UST) += generated-ust.o
util-obj-y += control.o
util-obj-y += generated-tracers.o
--
1.7.10.4
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-14 18:35 [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x Mohamad Gebai
` (2 preceding siblings ...)
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface Mohamad Gebai
@ 2013-10-14 18:35 ` Mohamad Gebai
2013-10-15 11:21 ` Alex Bennée
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 5/5] Add ust generated files to .gitignore Mohamad Gebai
4 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-14 18:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Mohamad Gebai, alex.bennee
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
---
docs/tracing.txt | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/docs/tracing.txt b/docs/tracing.txt
index bfc261b..64683db 100644
--- a/docs/tracing.txt
+++ b/docs/tracing.txt
@@ -214,6 +214,37 @@ The "ust" backend uses the LTTng Userspace Tracer library. There are no
monitor commands built into QEMU, instead UST utilities should be used to list,
enable/disable, and dump traces.
+Package lttng-tools is required for userspace tracing. After running Qemu, LTTng
+should be able to list all available events:
+
+ lttng list -u
+
+Create tracing session:
+
+ lttng create mysession
+
+Enable events:
+
+ lttng enable-event qemu:g_malloc -u
+
+Where the events can either be a comma-separated list of events, or "-a" to
+enable all tracepoint events. Start and stop tracing as needed:
+
+ lttng start
+ lttng stop
+
+View the trace:
+
+ lttng view
+
+Destroy tracing session:
+
+ lttng destroy
+
+Babeltrace can be used at any later time to view the trace:
+
+ babeltrace $HOME/lttng-traces/mysession-<date>-<time>
+
=== SystemTap ===
The "dtrace" backend uses DTrace sdt probes but has only been tested with
--
1.7.10.4
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [RFC PATCH v3 5/5] Add ust generated files to .gitignore
2013-10-14 18:35 [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x Mohamad Gebai
` (3 preceding siblings ...)
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing Mohamad Gebai
@ 2013-10-14 18:35 ` Mohamad Gebai
2013-10-16 12:08 ` Alex Bennée
4 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-14 18:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Mohamad Gebai, alex.bennee
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
index 8e1b73f..e024a76 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,8 @@ trace/generated-tracers-dtrace.h
trace/generated-tracers.dtrace
trace/generated-events.h
trace/generated-events.c
+trace/generated-ust-provider.h
+trace/generated-ust.c
libcacard/trace/generated-tracers.c
*-timestamp
*-softmmu
--
1.7.10.4
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing Mohamad Gebai
@ 2013-10-15 11:21 ` Alex Bennée
2013-10-15 16:07 ` Mohamad Gebai
0 siblings, 1 reply; 17+ messages in thread
From: Alex Bennée @ 2013-10-15 11:21 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: Mohamad Gebai, qemu-devel
mohamad.gebai@gmail.com writes:
> Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
> ---
> docs/tracing.txt | 31 +++++++++++++++++++++++++++++++
> 1 file changed, 31 insertions(+)
>
> diff --git a/docs/tracing.txt b/docs/tracing.txt
> index bfc261b..64683db 100644
> --- a/docs/tracing.txt
> +++ b/docs/tracing.txt
> @@ -214,6 +214,37 @@ The "ust" backend uses the LTTng Userspace Tracer library. There are no
> monitor commands built into QEMU, instead UST utilities should be used to list,
> enable/disable, and dump traces.
>
> +Package lttng-tools is required for userspace tracing. After running Qemu, LTTng
> +should be able to list all available events:
> +
> + lttng list -u
Running this gives me:
<quote>
UST events:
-------------
None
</quote>
Before or after running qemu. What is the mechanism lttng expects to
find out all these events?
> +
> +Create tracing session:
> +
> + lttng create mysession
> +
> +Enable events:
> +
> + lttng enable-event qemu:g_malloc -u
> +
> +Where the events can either be a comma-separated list of events, or "-a" to
> +enable all tracepoint events. Start and stop tracing as needed:
> +
> + lttng start
> + lttng stop
> +
> +View the trace:
> +
> + lttng view
> +
> +Destroy tracing session:
> +
> + lttng destroy
> +
> +Babeltrace can be used at any later time to view the trace:
> +
> + babeltrace $HOME/lttng-traces/mysession-<date>-<time>
> +
The rest of this looks OK and worked on my system.
> === SystemTap ===
>
> The "dtrace" backend uses DTrace sdt probes but has only been tested with
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-15 11:21 ` Alex Bennée
@ 2013-10-15 16:07 ` Mohamad Gebai
2013-10-16 12:05 ` Alex Bennée
0 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-15 16:07 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-devel, Mohamad Gebai
> Running this gives me:
>
> <quote>
> UST events:
> -------------
> None
> </quote>
>
> Before or after running qemu. What is the mechanism lttng expects to
> find out all these events?
Either the user should belong the group "tracing", or launch the
lttng-sessiond daemon (lttng-sessiond -d).
>
>> +
>> +Create tracing session:
>> +
>> + lttng create mysession
>> +
>> +Enable events:
>> +
>> + lttng enable-event qemu:g_malloc -u
>> +
>> +Where the events can either be a comma-separated list of events, or "-a" to
>> +enable all tracepoint events. Start and stop tracing as needed:
>> +
>> + lttng start
>> + lttng stop
>> +
>> +View the trace:
>> +
>> + lttng view
>> +
>> +Destroy tracing session:
>> +
>> + lttng destroy
>> +
>> +Babeltrace can be used at any later time to view the trace:
>> +
>> + babeltrace $HOME/lttng-traces/mysession-<date>-<time>
>> +
> The rest of this looks OK and worked on my system.
>
>> === SystemTap ===
>>
>> The "dtrace" backend uses DTrace sdt probes but has only been tested with
>
Thanks!
Mohamad
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-15 16:07 ` Mohamad Gebai
@ 2013-10-16 12:05 ` Alex Bennée
2013-10-17 1:02 ` Mohamad Gebai
0 siblings, 1 reply; 17+ messages in thread
From: Alex Bennée @ 2013-10-16 12:05 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: qemu-devel, Mohamad Gebai
mohamad.gebai@polymtl.ca writes:
>> Running this gives me:
>>
>> <quote>
>> UST events:
>> -------------
>> None
>> </quote>
>>
>> Before or after running qemu. What is the mechanism lttng expects to
>> find out all these events?
>
> Either the user should belong the group "tracing", or launch the
> lttng-sessiond daemon (lttng-sessiond -d).
<snip>
Hmm I've done both and I get nothing still. I can enable all tracepoints
though. This could just be a Ubuntu weirdness thing though.
I'm not sure if mentioning the group/daemon requirements in the tracing
doc is required though. I guess these things can be a little
package/distro specific?
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script for LTTng 2.x
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script " Mohamad Gebai
@ 2013-10-16 12:06 ` Alex Bennée
0 siblings, 0 replies; 17+ messages in thread
From: Alex Bennée @ 2013-10-16 12:06 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: Mohamad Gebai, qemu-devel
mohamad.gebai@gmail.com writes:
> Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
> ---
> configure | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/configure b/configure
> index 23dbaaf..627054c 100755
> --- a/configure
> +++ b/configure
> @@ -3287,15 +3287,14 @@ fi
> # For 'ust' backend, test if ust headers are present
> if test "$trace_backend" = "ust"; then
> cat > $TMPC << EOF
> -#include <ust/tracepoint.h>
> -#include <ust/marker.h>
> +#include <lttng/tracepoint.h>
> int main(void) { return 0; }
> EOF
> if compile_prog "" "" ; then
> - LIBS="-lust -lurcu-bp $LIBS"
> - libs_qga="-lust -lurcu-bp $libs_qga"
> + LIBS="-llttng-ust -lurcu-bp -ldl $LIBS"
> + libs_qga="-llttng-ust -lurcu-bp -ldl $libs_qga"
> else
> - error_exit "Trace backend 'ust' missing libust header files"
> + error_exit "Trace backend 'ust' missing lttng-ust header files"
> fi
> fi
Reviewed-by: Alex Bennée <alex@bennee.com>
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 2/5] Modified the tracetool framework for LTTng 2.x.
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 2/5] Modified the tracetool framework " Mohamad Gebai
@ 2013-10-16 12:06 ` Alex Bennée
0 siblings, 0 replies; 17+ messages in thread
From: Alex Bennée @ 2013-10-16 12:06 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: Mohamad Gebai, qemu-devel
mohamad.gebai@gmail.com writes:
> * A new format is required to generate definitions for ust tracepoints.
> Files ust_events_h.py and ust_events_c.py define common macros, while
> new function ust_events_h in events.py does the actual definition of
> each tracepoint.
> * ust.py generates the new interface for calling userspace tracepoints
> with LTTng 2.x, replacing trace_name(args) to tracepoint(name, args).
> * As explained in ust_events_c.py, -Wredundant-decls gives a warning
> when compiling with gcc 4.7 or older. This is specific to lttng-ust so
> for now use a pragma clause to avoid getting a warning.
>
> Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
<snip>
Reviewed-by: Alex Bennée <alex@bennee.com>
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface.
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface Mohamad Gebai
@ 2013-10-16 12:08 ` Alex Bennée
2013-10-17 1:04 ` Mohamad Gebai
0 siblings, 1 reply; 17+ messages in thread
From: Alex Bennée @ 2013-10-16 12:08 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: Mohamad Gebai, qemu-devel
mohamad.gebai@gmail.com writes:
> Add generation of new files for LTTng ust.
>
> Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
<snip>
I did run into problems with the first build which were solved with a
make clean. But I suspect making the Makefile robust to that is more
effort than it's worth.
Reviewed-by: Alex Bennée <alex@bennee.com>
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 5/5] Add ust generated files to .gitignore
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 5/5] Add ust generated files to .gitignore Mohamad Gebai
@ 2013-10-16 12:08 ` Alex Bennée
0 siblings, 0 replies; 17+ messages in thread
From: Alex Bennée @ 2013-10-16 12:08 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: Mohamad Gebai, qemu-devel
mohamad.gebai@gmail.com writes:
> Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
<snip>
Reviewed-by: Alex Bennée <alex@bennee.com>
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-16 12:05 ` Alex Bennée
@ 2013-10-17 1:02 ` Mohamad Gebai
2013-10-17 9:20 ` Alex Bennée
0 siblings, 1 reply; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-17 1:02 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-devel, Mohamad Gebai
On 13-10-16 08:05 AM, Alex Bennée wrote:
>>> Running this gives me:
>>>
>>> <quote>
>>> UST events:
>>> -------------
>>> None
>>> </quote>
>>>
>>> Before or after running qemu. What is the mechanism lttng expects to
>>> find out all these events?
>> Either the user should belong the group "tracing", or launch the
>> lttng-sessiond daemon (lttng-sessiond -d).
> <snip>
>
> Hmm I've done both and I get nothing still. I can enable all tracepoints
> though. This could just be a Ubuntu weirdness thing though.
That's weird. I did test it on a clean Ubuntu Precise (in a VM) and I
didn't have any problem after either one of these steps. Can you please
make sure that the user belongs to the "tracing" group and that the
lttng-sessiond daemon is running before running any instance of Qemu.
Also, Qemu should be running for LTTng to be able to list the events.
Does lttng enable-event -a -u/start/stop/view show any event?
>
> I'm not sure if mentioning the group/daemon requirements in the tracing
> doc is required though. I guess these things can be a little
> package/distro specific?
>
> '
This isn't really specific to Ubuntu, it's the setup of LTTng so I guess
I could add it to the documentation as well.
Thanks!
Mohamad
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface.
2013-10-16 12:08 ` Alex Bennée
@ 2013-10-17 1:04 ` Mohamad Gebai
0 siblings, 0 replies; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-17 1:04 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-devel, Mohamad Gebai
On 13-10-16 08:08 AM, Alex Bennée wrote:
>> Add generation of new files for LTTng ust.
>>
>> Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
> <snip>
>
> I did run into problems with the first build which were solved with a
> make clean. But I suspect making the Makefile robust to that is more
> effort than it's worth.
I always started from a clean directory so I didn't encounter any
problem. I could look into it if you could provide the steps to
reproduce the error.
Mohamad
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-17 1:02 ` Mohamad Gebai
@ 2013-10-17 9:20 ` Alex Bennée
2013-10-18 6:38 ` Mohamad Gebai
0 siblings, 1 reply; 17+ messages in thread
From: Alex Bennée @ 2013-10-17 9:20 UTC (permalink / raw)
To: Mohamad Gebai; +Cc: qemu-devel, Mohamad Gebai
mohamad.gebai@polymtl.ca writes:
> On 13-10-16 08:05 AM, Alex Bennée wrote:
>>>> Running this gives me:
>>>>
>>>> <quote>
>>>> UST events:
>>>> -------------
>>>> None
>>>> </quote>
>>>>
>>>> Before or after running qemu. What is the mechanism lttng expects to
>>>> find out all these events?
>>> Either the user should belong the group "tracing", or launch the
>>> lttng-sessiond daemon (lttng-sessiond -d).
>> <snip>
>>
>> Hmm I've done both and I get nothing still. I can enable all tracepoints
>> though. This could just be a Ubuntu weirdness thing though.
>
> That's weird. I did test it on a clean Ubuntu Precise (in a VM) and I
> didn't have any problem after either one of these steps. Can you please
> make sure that the user belongs to the "tracing" group and that the
> lttng-sessiond daemon is running before running any instance of Qemu.
> Also, Qemu should be running for LTTng to be able to list the events.
Ahh that was it. I suggest you change the wording from:
"Package lttng-tools is required for userspace tracing. After running Qemu, LTTng
should be able to list all available events:"
to
"Package lttng-tools is required for userspace tracing. While running
and instrumented Qemu, LTTng should be able to list all available events:"
> Does lttng enable-event -a -u/start/stop/view show any event?
Yes, as I said the rest worked fine. With that minor wording fix I'm happy.
Thanks for getting this back into shape :-)
--
Alex Bennée
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing
2013-10-17 9:20 ` Alex Bennée
@ 2013-10-18 6:38 ` Mohamad Gebai
0 siblings, 0 replies; 17+ messages in thread
From: Mohamad Gebai @ 2013-10-18 6:38 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-devel, Mohamad Gebai
On 13-10-17 05:20 AM, Alex Bennée wrote:
> mohamad.gebai@polymtl.ca writes:
>
>> On 13-10-16 08:05 AM, Alex Bennée wrote:
>>>>> Running this gives me:
>>>>>
>>>>> <quote>
>>>>> UST events:
>>>>> -------------
>>>>> None
>>>>> </quote>
>>>>>
>>>>> Before or after running qemu. What is the mechanism lttng expects to
>>>>> find out all these events?
>>>> Either the user should belong the group "tracing", or launch the
>>>> lttng-sessiond daemon (lttng-sessiond -d).
>>> <snip>
>>>
>>> Hmm I've done both and I get nothing still. I can enable all tracepoints
>>> though. This could just be a Ubuntu weirdness thing though.
>> That's weird. I did test it on a clean Ubuntu Precise (in a VM) and I
>> didn't have any problem after either one of these steps. Can you please
>> make sure that the user belongs to the "tracing" group and that the
>> lttng-sessiond daemon is running before running any instance of Qemu.
>> Also, Qemu should be running for LTTng to be able to list the events.
> Ahh that was it. I suggest you change the wording from:
>
> "Package lttng-tools is required for userspace tracing. After running Qemu, LTTng
> should be able to list all available events:"
>
> to
>
> "Package lttng-tools is required for userspace tracing. While running
> and instrumented Qemu, LTTng should be able to list all available events:"
Oops! Sorry about that.
>
>> Does lttng enable-event -a -u/start/stop/view show any event?
> Yes, as I said the rest worked fine. With that minor wording fix I'm happy.
>
> Thanks for getting this back into shape :-)
>
Happy to do it, I hope it will be useful to others.
Mohamad
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2013-10-18 6:39 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-14 18:35 [Qemu-devel] [RFC PATCH v3 0/5] Fix UST backend for LTTng 2.x Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 1/5] Fix configure script " Mohamad Gebai
2013-10-16 12:06 ` Alex Bennée
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 2/5] Modified the tracetool framework " Mohamad Gebai
2013-10-16 12:06 ` Alex Bennée
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 3/5] Adapt Makefiles to the new LTTng ust interface Mohamad Gebai
2013-10-16 12:08 ` Alex Bennée
2013-10-17 1:04 ` Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 4/5] Update documentation for LTTng ust tracing Mohamad Gebai
2013-10-15 11:21 ` Alex Bennée
2013-10-15 16:07 ` Mohamad Gebai
2013-10-16 12:05 ` Alex Bennée
2013-10-17 1:02 ` Mohamad Gebai
2013-10-17 9:20 ` Alex Bennée
2013-10-18 6:38 ` Mohamad Gebai
2013-10-14 18:35 ` [Qemu-devel] [RFC PATCH v3 5/5] Add ust generated files to .gitignore Mohamad Gebai
2013-10-16 12:08 ` Alex Bennée
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).