On 8/7/19 11:32 AM, Stefan Hajnoczi wrote: > 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>
Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Tested-by: Philippe Mathieu-Daudé <phi...@redhat.com>