On Tue, Aug 06, 2019 at 05:14:13PM +0200, Markus Armbruster wrote: > 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 <stefa...@redhat.com> > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > block/block-backend.c | 1 + > qom/object.c | 1 + > scripts/tracetool/format/c.py | 1 + > scripts/tracetool/format/h.py | 7 +++- > trace/control-internal.h | 25 -------------- > trace/control-vcpu.h | 63 +++++++++++++++++++++++++++++++++++ > trace/control.h | 24 ------------- > trace/qmp.c | 2 +- > ui/vnc.c | 1 + > 9 files changed, 74 insertions(+), 51 deletions(-) > create mode 100644 trace/control-vcpu.h
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>