From 13d4ff07e8ce524ee0f7904b1f7d3a2fdb98b9c4 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Mon, 12 Aug 2019 07:23:37 +0200 Subject: trace: Do not include qom/cpu.h into generated trace.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs/devel/tracing.txt explains "since many source files include trace.h, [the generated trace.h use] a minimum of types and other header files included to keep the namespace clean and compile times and dependencies down." Commit 4815185902 "trace: Add per-vCPU tracing states for events with the 'vcpu' property" made them all include qom/cpu.h via control-internal.h. qom/cpu.h in turn includes about thirty headers. Ouch. Per-vCPU tracing is currently not supported in sub-directories' trace-events. In other words, qom/cpu.h can only be used in trace-root.h, not in any trace.h. Split trace/control-vcpu.h off trace/control.h and trace/control-internal.h. Have the generated trace.h include trace/control.h (which no longer includes qom/cpu.h), and trace-root.h include trace/control-vcpu.h (which includes it). The resulting improvement is a bit disappointing: in my "build everything" tree, some 1100 out of 6600 objects (not counting tests and objects that don't depend on qemu/osdep.h) depend on a trace.h, and about 600 of them no longer depend on qom/cpu.h. But more than 1300 others depend on trace-root.h. More work is clearly needed. Left for another day. Cc: Stefan Hajnoczi Signed-off-by: Markus Armbruster Reviewed-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Message-Id: <20190812052359.30071-8-armbru@redhat.com> --- scripts/tracetool/format/c.py | 1 + 1 file changed, 1 insertion(+) (limited to 'scripts/tracetool/format/c.py') diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py index 833c05a022..31207961b0 100644 --- a/scripts/tracetool/format/c.py +++ b/scripts/tracetool/format/c.py @@ -28,6 +28,7 @@ def generate(events, backend, group): out('/* This file is autogenerated by tracetool, do not edit. */', '', '#include "qemu/osdep.h"', + '#include "qemu/module.h"', '#include "%s"' % header, '') -- cgit 1.4.1