[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 14/18] trace: get rid of generated-events.h/g
From: |
Lluís Vilanova |
Subject: |
Re: [Qemu-devel] [PATCH v3 14/18] trace: get rid of generated-events.h/generated-events.c |
Date: |
Mon, 19 Sep 2016 20:12:20 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Daniel P Berrange writes:
> 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 be 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.
> Signed-off-by: Daniel P. Berrange <address@hidden>
> ---
> Makefile | 3 ---
> include/trace-tcg.h | 1 -
> include/trace.h | 1 -
> scripts/tracetool/format/c.py | 51
> ++++++++++++++++++++++++++++++++++++++-----
> scripts/tracetool/format/h.py | 19 ++++++++++++++++
> trace/Makefile.objs | 28 ++++--------------------
> trace/control.h | 2 +-
> trace/simple.h | 4 ----
> 8 files changed, 70 insertions(+), 39 deletions(-)
> diff --git a/Makefile b/Makefile
> index 50b4b3a..16a35b0 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..24f8d2e 100644
> --- a/scripts/tracetool/format/c.py
> +++ b/scripts/tracetool/format/c.py
> @@ -17,12 +17,53 @@ 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 = "TRACE_" + e.name.upper() + "_EV",
Event.api() again.
> + 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 = "TRACE_" + e.name.upper() + "_EV")
> +
> + 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/h.py b/scripts/tracetool/format/h.py
> index 64a6680..f1dc493 100644
> --- a/scripts/tracetool/format/h.py
> +++ b/scripts/tracetool/format/h.py
> @@ -26,6 +26,25 @@ def generate(events, backend):
> '#include "trace/control.h"',
> '')
> + for e in events:
> + out('extern TraceEvent TRACE_%s_EV;' % e.name.upper())
> +
> + 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
> -
You should remove files events_[ch].py too.
> ######################################################################
> # 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 60905f7..93efcbf 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
- [Qemu-devel] [PATCH v3 07/18] trace: give each trace event a named TraceEvent struct, (continued)
- [Qemu-devel] [PATCH v3 07/18] trace: give each trace event a named TraceEvent struct, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 10/18] trace: don't abort qemu if ftrace can't be initialized, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 11/18] trace: provide mechanism for registering trace events, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 17/18] trace: pass trace-events to tracetool as a positional param, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 13/18] trace: dynamically allocate event IDs at runtime, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 14/18] trace: get rid of generated-events.h/generated-events.c, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 16/18] trace: push reading of events up a level to tracetool main, Daniel P. Berrange, 2016/09/19
- [Qemu-devel] [PATCH v3 18/18] trace: introduce a formal group name for trace events, Daniel P. Berrange, 2016/09/19
- Re: [Qemu-devel] [PATCH v3 00/18] Refactor trace to allow modular build, no-reply, 2016/09/19
- Re: [Qemu-devel] [PATCH v3 00/18] Refactor trace to allow modular build, no-reply, 2016/09/19