From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33118) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buFDE-0008Pg-OO for qemu-devel@nongnu.org; Wed, 12 Oct 2016 04:48:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1buFDB-0002QH-PL for qemu-devel@nongnu.org; Wed, 12 Oct 2016 04:48:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48166) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buFDB-0002Q4-F7 for qemu-devel@nongnu.org; Wed, 12 Oct 2016 04:48:29 -0400 From: Stefan Hajnoczi Date: Wed, 12 Oct 2016 10:47:33 +0200 Message-Id: <1476262058-13936-16-git-send-email-stefanha@redhat.com> In-Reply-To: <1476262058-13936-1-git-send-email-stefanha@redhat.com> References: <1476262058-13936-1-git-send-email-stefanha@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL v2 15/20] trace: get rid of generated-events.h/generated-events.c List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , "Daniel P. Berrange" , Stefan Hajnoczi From: "Daniel P. Berrange" 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: Stefan Hajnoczi Reviewed-by: Llu=C3=ADs Vilanova Signed-off-by: Daniel P. Berrange Message-id: 1475588159-30598-17-git-send-email-berrange@redhat.com Signed-off-by: Stefan Hajnoczi --- 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 5f6acae..3bcb056 100644 --- a/Makefile +++ b/Makefile @@ -56,9 +56,6 @@ GENERATED_SOURCES +=3D qmp-marshal.c qapi-types.c qapi-= visit.c qapi-event.c GENERATED_HEADERS +=3D qmp-introspect.h GENERATED_SOURCES +=3D qmp-introspect.c =20 -GENERATED_HEADERS +=3D trace/generated-events.h -GENERATED_SOURCES +=3D trace/generated-events.c - GENERATED_HEADERS +=3D trace/generated-tracers.h ifeq ($(findstring dtrace,$(TRACE_BACKENDS)),dtrace) GENERATED_HEADERS +=3D 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 =20 #include "trace/generated-tcg-tracers.h" -#include "trace/generated-events.h" =20 #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 =20 #include "trace/generated-tracers.h" -#include "trace/generated-events.h" =20 #endif /* TRACE_H */ diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.p= y index 699598f..7ac6d4c 100644 --- a/scripts/tracetool/format/c.py +++ b/scripts/tracetool/format/c.py @@ -17,12 +17,52 @@ from tracetool import out =20 =20 def generate(events, backend): - events =3D [e for e in events - if "disable" not in e.properties] + active_events =3D [e for e in events + if "disable" not in e.properties] =20 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 =3D 0 + else: + vcpu_id =3D "TRACE_VCPU_EVENT_NONE" + out('TraceEvent %(event)s =3D {', + ' .id =3D 0,', + ' .vcpu_id =3D %(vcpu_id)s,', + ' .name =3D \"%(name)s\",', + ' .sstate =3D %(sstate)s,', + ' .dstate =3D &%(dstate)s ', + '};', + event =3D e.api(e.QEMU_EVENT), + vcpu_id =3D vcpu_id, + name =3D e.name, + sstate =3D "TRACE_%s_ENABLED" % e.name.upper(), + dstate =3D e.api(e.QEMU_DSTATE)) + + out('TraceEvent *trace_events[] =3D {') + + for e in events: + out(' &%(event)s,', event =3D 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/for= mat/events_c.py deleted file mode 100644 index a976c22..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__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " -__license__ =3D "GPL version 2 or (at your option) any later version" - -__maintainer__ =3D "Stefan Hajnoczi" -__email__ =3D "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 =3D 0 - else: - vcpu_id =3D "TRACE_VCPU_EVENT_NONE" - out('TraceEvent %(event)s =3D {', - ' .id =3D 0,', - ' .vcpu_id =3D %(vcpu_id)s,', - ' .name =3D \"%(name)s\",', - ' .sstate =3D %(sstate)s,', - ' .dstate =3D &%(dstate)s ', - '};', - event =3D e.api(e.QEMU_EVENT), - vcpu_id =3D vcpu_id, - name =3D e.name, - sstate =3D "TRACE_%s_ENABLED" % e.name.upper(), - dstate =3D e.api(e.QEMU_DSTATE)) - - out('TraceEvent *trace_events[] =3D {') - - for e in events: - out(' &%(event)s,', event =3D 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/for= mat/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__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " -__license__ =3D "GPL version 2 or (at your option) any later version" - -__maintainer__ =3D "Stefan Hajnoczi" -__email__ =3D "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 =3D 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 =3D 0 - else: - enabled =3D 1 - if "tcg-exec" in e.properties: - # a single define for the two "sub-events" - out('#define TRACE_%(name)s_ENABLED %(enabled)d', - name=3De.original.name.upper(), - enabled=3Denabled) - 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.p= y 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"', '') =20 + for e in events: + out('extern TraceEvent %(event)s;', + event =3D 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 =3D 0 + else: + enabled =3D 1 + if "tcg-exec" in e.properties: + # a single define for the two "sub-events" + out('#define TRACE_%(name)s_ENABLED %(enabled)d', + name=3De.original.name.upper(), + enabled=3Denabled) + out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled)) + backend.generate_begin(events) =20 for e in events: diff --git a/trace/Makefile.objs b/trace/Makefile.objs index 24d3b37..abac333 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=3D$(TRACE_BACKENDS) \ < $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") =20 -$(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 =20 endif =20 -###################################################################### -# 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 $(tra= cetool-y) - $(call quiet-command,$(TRACETOOL) \ - --format=3Devents-h \ - --backends=3D$(TRACE_BACKENDS) \ - < $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") - -$(obj)/generated-events.c: $(obj)/generated-events.c-timestamp $(BUILD_D= IR)/config-host.mak - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -$(obj)/generated-events.c-timestamp: $(BUILD_DIR)/trace-events-all $(tra= cetool-y) - $(call quiet-command,$(TRACETOOL) \ - --format=3Devents-c \ - --backends=3D$(TRACE_BACKENDS) \ - < $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") - -util-obj-y +=3D generated-events.o - =20 ###################################################################### # Auto-generated tracing routines @@ -154,7 +133,8 @@ $(obj)/generated-tcg-tracers.h-timestamp: $(BUILD_DIR= )/trace-events-all $(BUILD_ ###################################################################### # Backend code =20 -util-obj-$(CONFIG_TRACE_SIMPLE) +=3D simple.o generated-tracers.o +util-obj-y +=3D generated-tracers.o +util-obj-$(CONFIG_TRACE_SIMPLE) +=3D simple.o util-obj-$(CONFIG_TRACE_FTRACE) +=3D ftrace.o util-obj-$(CONFIG_TRACE_UST) +=3D generated-ust.o util-obj-y +=3D control.o diff --git a/trace/control.h b/trace/control.h index 69635bf..ccaeac8 100644 --- a/trace/control.h +++ b/trace/control.h @@ -11,7 +11,7 @@ #define TRACE__CONTROL_H =20 #include "qemu-common.h" -#include "trace/generated-events.h" +#include "event-internal.h" =20 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 =20 - -#include "trace/generated-events.h" - - void st_print_trace_file_status(FILE *stream, fprintf_function stream_pr= intf); void st_set_trace_file_enabled(bool enable); void st_set_trace_file(const char *file); --=20 2.7.4