From: "Daniel P. Berrange" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Lluís Vilanova" <vilanova@ac.upc.edu>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Daniel P. Berrange" <berrange@redhat.com>
Subject: [Qemu-devel] [PATCH v5 16/20] trace: get rid of generated-events.h/generated-events.c
Date: Wed, 28 Sep 2016 14:08:19 +0100 [thread overview]
Message-ID: <1475068103-356-17-git-send-email-berrange@redhat.com> (raw)
In-Reply-To: <1475068103-356-1-git-send-email-berrange@redhat.com>
Currently the generated-events.[ch] files contain the
event dstates, constants and TraceEvent structs, while the
generated-tracers.[ch] files contain the actual trace
probe logic. With the removal of usage of the event enums
from the API there is no longer any compelling reason for
the separation between these files. The generated-events.h
content is only ever needed from the generated-tracers.[ch]
files.
The enums/constants/structs from generated-events.[ch] are
thus moved into the generated-tracers.[ch], so that there
is one less file to be generated.
Reviewed-by: Lluís Vilanova <vilanova@ac.upc.edu>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
Makefile | 3 --
include/trace-tcg.h | 1 -
include/trace.h | 1 -
scripts/tracetool/format/c.py | 50 ++++++++++++++++++++++++++---
scripts/tracetool/format/events_c.py | 62 ------------------------------------
scripts/tracetool/format/events_h.py | 49 ----------------------------
scripts/tracetool/format/h.py | 20 ++++++++++++
trace/Makefile.objs | 28 +++-------------
trace/control.h | 2 +-
trace/simple.h | 4 ---
10 files changed, 70 insertions(+), 150 deletions(-)
delete mode 100644 scripts/tracetool/format/events_c.py
delete mode 100644 scripts/tracetool/format/events_h.py
diff --git a/Makefile b/Makefile
index f103616..531acef 100644
--- a/Makefile
+++ b/Makefile
@@ -56,9 +56,6 @@ GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c qapi-event.c
GENERATED_HEADERS += qmp-introspect.h
GENERATED_SOURCES += qmp-introspect.c
-GENERATED_HEADERS += trace/generated-events.h
-GENERATED_SOURCES += trace/generated-events.c
-
GENERATED_HEADERS += trace/generated-tracers.h
ifeq ($(findstring dtrace,$(TRACE_BACKENDS)),dtrace)
GENERATED_HEADERS += trace/generated-tracers-dtrace.h
diff --git a/include/trace-tcg.h b/include/trace-tcg.h
index edab4b1..da68608 100644
--- a/include/trace-tcg.h
+++ b/include/trace-tcg.h
@@ -2,6 +2,5 @@
#define TRACE_TCG_H
#include "trace/generated-tcg-tracers.h"
-#include "trace/generated-events.h"
#endif /* TRACE_TCG_H */
diff --git a/include/trace.h b/include/trace.h
index 9a01e44..ac9ff3d 100644
--- a/include/trace.h
+++ b/include/trace.h
@@ -2,6 +2,5 @@
#define TRACE_H
#include "trace/generated-tracers.h"
-#include "trace/generated-events.h"
#endif /* TRACE_H */
diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py
index 699598f..b79114b 100644
--- a/scripts/tracetool/format/c.py
+++ b/scripts/tracetool/format/c.py
@@ -17,12 +17,52 @@ from tracetool import out
def generate(events, backend):
- events = [e for e in events
- if "disable" not in e.properties]
+ active_events = [e for e in events
+ if "disable" not in e.properties]
out('/* This file is autogenerated by tracetool, do not edit. */',
+ '',
+ '#include "qemu/osdep.h"',
+ '#include "trace.h"',
'')
- backend.generate_begin(events)
- for event in events:
+
+ for e in events:
+ out('uint16_t %s;' % e.api(e.QEMU_DSTATE))
+
+ for e in events:
+ if "vcpu" in e.properties:
+ vcpu_id = 0
+ else:
+ vcpu_id = "TRACE_VCPU_EVENT_NONE"
+ out('TraceEvent %(event)s = {',
+ ' .id = 0,',
+ ' .vcpu_id = %(vcpu_id)s,',
+ ' .name = \"%(name)s\",',
+ ' .sstate = %(sstate)s,',
+ ' .dstate = &%(dstate)s ',
+ '};',
+ event = e.api(e.QEMU_EVENT),
+ vcpu_id = vcpu_id,
+ name = e.name,
+ sstate = "TRACE_%s_ENABLED" % e.name.upper(),
+ dstate = e.api(e.QEMU_DSTATE))
+
+ out('TraceEvent *trace_events[] = {')
+
+ for e in events:
+ out('&%(event)s,', event = e.api(e.QEMU_EVENT))
+
+ out(' NULL,',
+ '};',
+ '')
+
+ out('static void trace_register_events(void)',
+ '{',
+ ' trace_event_register_group(trace_events);',
+ '}',
+ 'trace_init(trace_register_events)')
+
+ backend.generate_begin(active_events)
+ for event in active_events:
backend.generate(event)
- backend.generate_end(events)
+ backend.generate_end(active_events)
diff --git a/scripts/tracetool/format/events_c.py b/scripts/tracetool/format/events_c.py
deleted file mode 100644
index 3d4a0ce..0000000
--- a/scripts/tracetool/format/events_c.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-trace/generated-events.c
-"""
-
-__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>"
-__copyright__ = "Copyright 2012-2016, 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 generate(events, backend):
- out('/* This file is autogenerated by tracetool, do not edit. */',
- '',
- '#include "qemu/osdep.h"',
- '#include "trace.h"',
- '#include "trace/generated-events.h"',
- '#include "trace/control.h"',
- '')
-
- for e in events:
- out('uint16_t %s;' % e.api(e.QEMU_DSTATE))
-
- for e in events:
- if "vcpu" in e.properties:
- vcpu_id = 0
- else:
- vcpu_id = "TRACE_VCPU_EVENT_NONE"
- out('TraceEvent %(event)s = {',
- ' .id = 0,',
- ' .vcpu_id = %(vcpu_id)s,',
- ' .name = \"%(name)s\",',
- ' .sstate = %(sstate)s,',
- ' .dstate = &%(dstate)s ',
- '};',
- event = e.api(e.QEMU_EVENT),
- vcpu_id = vcpu_id,
- name = e.name,
- sstate = "TRACE_%s_ENABLED" % e.name.upper(),
- dstate = e.api(e.QEMU_DSTATE))
-
- out('TraceEvent *trace_events[] = {')
-
- for e in events:
- out('&%(event)s,', event = e.api(e.QEMU_EVENT))
-
- out(' NULL,',
- '};',
- '')
-
- out('static void trace_register_events(void)',
- '{',
- ' trace_event_register_group(trace_events);',
- '}',
- 'trace_init(trace_register_events)')
diff --git a/scripts/tracetool/format/events_h.py b/scripts/tracetool/format/events_h.py
deleted file mode 100644
index 1cb332b..0000000
--- a/scripts/tracetool/format/events_h.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-trace/generated-events.h
-"""
-
-__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>"
-__copyright__ = "Copyright 2012-2016, 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 generate(events, backend):
- out('/* This file is autogenerated by tracetool, do not edit. */',
- '',
- '#ifndef TRACE__GENERATED_EVENTS_H',
- '#define TRACE__GENERATED_EVENTS_H',
- '',
- '#include "trace/event-internal.h"',
- )
-
- for e in events:
- out('extern TraceEvent %(event)s;',
- event = e.api(e.QEMU_EVENT))
-
- for e in events:
- out('extern uint16_t %s;' % e.api(e.QEMU_DSTATE))
-
- # static state
- for e in events:
- if 'disable' in e.properties:
- enabled = 0
- else:
- enabled = 1
- if "tcg-exec" in e.properties:
- # a single define for the two "sub-events"
- out('#define TRACE_%(name)s_ENABLED %(enabled)d',
- name=e.original.name.upper(),
- enabled=enabled)
- out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled))
-
- out('',
- '#endif /* TRACE__GENERATED_EVENTS_H */')
diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py
index 64a6680..f4748c3 100644
--- a/scripts/tracetool/format/h.py
+++ b/scripts/tracetool/format/h.py
@@ -26,6 +26,26 @@ def generate(events, backend):
'#include "trace/control.h"',
'')
+ for e in events:
+ out('extern TraceEvent %(event)s;',
+ event = e.api(e.QEMU_EVENT))
+
+ for e in events:
+ out('extern uint16_t %s;' % e.api(e.QEMU_DSTATE))
+
+ # static state
+ for e in events:
+ if 'disable' in e.properties:
+ enabled = 0
+ else:
+ enabled = 1
+ if "tcg-exec" in e.properties:
+ # a single define for the two "sub-events"
+ out('#define TRACE_%(name)s_ENABLED %(enabled)d',
+ name=e.original.name.upper(),
+ enabled=enabled)
+ out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled))
+
backend.generate_begin(events)
for e in events:
diff --git a/trace/Makefile.objs b/trace/Makefile.objs
index 4d91b3b..83f754e 100644
--- a/trace/Makefile.objs
+++ b/trace/Makefile.objs
@@ -32,32 +32,11 @@ $(obj)/generated-ust.c-timestamp: $(BUILD_DIR)/trace-events-all $(tracetool-y)
--backends=$(TRACE_BACKENDS) \
< $< > $@," GEN $(patsubst %-timestamp,%,$@)")
-$(obj)/generated-events.h: $(obj)/generated-ust-provider.h
-$(obj)/generated-events.c: $(obj)/generated-ust.c
+$(obj)/generated-tracers.h: $(obj)/generated-ust-provider.h
+$(obj)/generated-tracers.c: $(obj)/generated-ust.c
endif
-######################################################################
-# Auto-generated event descriptions
-
-$(obj)/generated-events.h: $(obj)/generated-events.h-timestamp
- @cmp $< $@ >/dev/null 2>&1 || cp $< $@
-$(obj)/generated-events.h-timestamp: $(BUILD_DIR)/trace-events-all $(tracetool-y)
- $(call quiet-command,$(TRACETOOL) \
- --format=events-h \
- --backends=$(TRACE_BACKENDS) \
- < $< > $@," GEN $(patsubst %-timestamp,%,$@)")
-
-$(obj)/generated-events.c: $(obj)/generated-events.c-timestamp $(BUILD_DIR)/config-host.mak
- @cmp $< $@ >/dev/null 2>&1 || cp $< $@
-$(obj)/generated-events.c-timestamp: $(BUILD_DIR)/trace-events-all $(tracetool-y)
- $(call quiet-command,$(TRACETOOL) \
- --format=events-c \
- --backends=$(TRACE_BACKENDS) \
- < $< > $@," GEN $(patsubst %-timestamp,%,$@)")
-
-util-obj-y += generated-events.o
-
######################################################################
# Auto-generated tracing routines
@@ -154,7 +133,8 @@ $(obj)/generated-tcg-tracers.h-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_
######################################################################
# Backend code
-util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o generated-tracers.o
+util-obj-y += generated-tracers.o
+util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o
util-obj-$(CONFIG_TRACE_FTRACE) += ftrace.o
util-obj-$(CONFIG_TRACE_UST) += generated-ust.o
util-obj-y += control.o
diff --git a/trace/control.h b/trace/control.h
index 7a068ec..7de03df 100644
--- a/trace/control.h
+++ b/trace/control.h
@@ -11,7 +11,7 @@
#define TRACE__CONTROL_H
#include "qemu-common.h"
-#include "trace/generated-events.h"
+#include "event-internal.h"
typedef struct TraceEventIter {
size_t event;
diff --git a/trace/simple.h b/trace/simple.h
index 17ce472..9931808 100644
--- a/trace/simple.h
+++ b/trace/simple.h
@@ -11,10 +11,6 @@
#ifndef TRACE_SIMPLE_H
#define TRACE_SIMPLE_H
-
-#include "trace/generated-events.h"
-
-
void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf);
void st_set_trace_file_enabled(bool enable);
void st_set_trace_file(const char *file);
--
2.7.4
next prev parent reply other threads:[~2016-09-28 13:08 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-28 13:08 [Qemu-devel] [PATCH v5 00/20] Refactor trace to allow modular build Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 01/20] trace: move colo trace events to net/ sub-directory Daniel P. Berrange
2016-10-03 13:25 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 02/20] trace: remove double-underscore in event name Daniel P. Berrange
2016-09-28 13:25 ` Lluís Vilanova
2016-10-03 13:25 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 03/20] trace: add trace event iterator APIs Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 04/20] trace: convert code to use event iterators Daniel P. Berrange
2016-09-30 14:00 ` Lluís Vilanova
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 05/20] trace: remove some now unused functions Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 06/20] trace: remove global 'uint16 dstate[]' array Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 07/20] trace: remove duplicate control.h includes in generated-tracers.h Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 08/20] trace: break circular dependency in event-internal.h Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 09/20] trace: give each trace event a named TraceEvent struct Daniel P. Berrange
2016-09-30 14:09 ` Lluís Vilanova
2016-10-03 13:27 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 10/20] trace: remove the TraceEventID and TraceEventVCPUID enums Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 11/20] trace: emit name <-> ID mapping in simpletrace header Daniel P. Berrange
2016-10-03 13:57 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 12/20] trace: don't abort qemu if ftrace can't be initialized Daniel P. Berrange
2016-10-03 13:59 ` Stefan Hajnoczi
2016-10-04 9:07 ` Daniel P. Berrange
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 13/20] trace: provide mechanism for registering trace events Daniel P. Berrange
2016-10-03 14:02 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 14/20] trace: dynamically allocate trace_dstate in CPUState Daniel P. Berrange
2016-09-30 14:17 ` Lluís Vilanova
2016-10-03 14:04 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 15/20] trace: dynamically allocate event IDs at runtime Daniel P. Berrange
2016-10-03 14:21 ` Stefan Hajnoczi
2016-09-28 13:08 ` Daniel P. Berrange [this message]
2016-10-03 14:38 ` [Qemu-devel] [PATCH v5 16/20] trace: get rid of generated-events.h/generated-events.c Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 17/20] trace: rename _read_events to read_events Daniel P. Berrange
2016-10-03 14:39 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 18/20] trace: push reading of events up a level to tracetool main Daniel P. Berrange
2016-10-03 14:39 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 19/20] trace: pass trace-events to tracetool as a positional param Daniel P. Berrange
2016-10-03 14:41 ` Stefan Hajnoczi
2016-09-28 13:08 ` [Qemu-devel] [PATCH v5 20/20] trace: introduce a formal group name for trace events Daniel P. Berrange
2016-09-30 14:36 ` Lluís Vilanova
2016-10-03 14:43 ` Stefan Hajnoczi
2016-10-03 14:44 ` [Qemu-devel] [PATCH v5 00/20] Refactor trace to allow modular build Stefan Hajnoczi
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=1475068103-356-17-git-send-email-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=vilanova@ac.upc.edu \
/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;
as well as URLs for NNTP newsgroup(s).