Skip to content

Commit

Permalink
trace: get rid of generated-events.h/generated-events.c
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Lluís Vilanova <[email protected]>
Signed-off-by: Daniel P. Berrange <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
  • Loading branch information
berrange authored and stefanhaRH committed Oct 12, 2016
1 parent ca3fa0e commit 3477018
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 150 deletions.
3 changes: 0 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion include/trace-tcg.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@
#define TRACE_TCG_H

#include "trace/generated-tcg-tracers.h"
#include "trace/generated-events.h"

#endif /* TRACE_TCG_H */
1 change: 0 additions & 1 deletion include/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@
#define TRACE_H

#include "trace/generated-tracers.h"
#include "trace/generated-events.h"

#endif /* TRACE_H */
50 changes: 45 additions & 5 deletions scripts/tracetool/format/c.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,52 @@


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)
62 changes: 0 additions & 62 deletions scripts/tracetool/format/events_c.py

This file was deleted.

49 changes: 0 additions & 49 deletions scripts/tracetool/format/events_h.py

This file was deleted.

20 changes: 20 additions & 0 deletions scripts/tracetool/format/h.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
28 changes: 4 additions & 24 deletions trace/Makefile.objs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion trace/control.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 0 additions & 4 deletions trace/simple.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 3477018

Please sign in to comment.