On Tue, Jan 24, 2017 at 11:01:43AM +0000, Daniel P. Berrange wrote: > This is the final part of my trace events refactoring. > > Previously we merged code that split trace-events up > into one file per sub-directory. We also merged code > to the code-generator that enables us to generate > and use multiple independant sets of trace events. > > This is the final glue that makes use of these two > earlier changes, so that we actually generate a > separate trace.h & trace.c file per sub-directory. > > The result is that when adding a new trace event to > a file, only files in that sub-directory get rebuilt. > Theoretically the build is faster too, since each > source file includes a much smaller trace.h that > only contains probes relevant to it. In reality this > speed benefit is probably marginal & lost in the noise. > > This patch series has massively changed since v2. > > - It no longer modifies the Makefile.objs rules in each > sub-directory. A bit of magic in the top level > Makefile.objs file lets us generate all the needed > rules from one place > > - It sticks with bare "trace.h" includes instead of adding > sub-dir prefix "hw/block/trace.h". To achieve this we > had to rename the trace.h to trace-root.h in the top > level directory to avoid ambiguity in places where a > file needs to include the top-level instead of local > trace.h > > Daniel P. Berrange (8): > make: move top level dir to end of include search path > trace: move hw/block/dataplane events to correct subdir > trace: move hw/xen events to correct subdir > trace: move hw/i386/xen events to correct subdir > trace: move setting of group name into Makefiles > trace: switch to modular code generation for sub-directories > trace: update docs to reflect new code generation approach > trace: improve error reporting when parsing simpletrace header > > .gitignore | 22 +++-- > Makefile | 156 ++++++++++++++++++++++++++---- > Makefile.objs | 99 ++++++++++--------- > Makefile.target | 10 +- > aio-posix.c | 2 +- > balloon.c | 2 +- > block.c | 2 +- > blockdev-nbd.c | 1 - > blockdev.c | 2 +- > blockjob.c | 1 - > cpu-exec.c | 2 +- > dma-helpers.c | 2 +- > docs/tracing.txt | 55 ++++++++--- > exec.c | 2 +- > hw/block/dataplane/trace-events | 6 ++ > hw/block/trace-events | 5 - > hw/i386/trace-events | 7 -- > hw/i386/xen/trace-events | 6 ++ > hw/net/fsl_etsec/etsec.c | 1 - > hw/xen/trace-events | 13 +++ > include/exec/cpu_ldst_template.h | 2 +- > include/exec/cpu_ldst_useronly_template.h | 2 +- > include/hw/xen/xen_common.h | 2 +- > include/trace.h | 6 -- > ioport.c | 2 +- > kvm-all.c | 2 +- > memory.c | 2 +- > monitor.c | 2 +- > qom/cpu.c | 2 +- > rules.mak | 17 ++-- > scripts/simpletrace.py | 10 +- > scripts/tracetool.py | 31 +++--- > scripts/tracetool/backend/dtrace.py | 7 +- > scripts/tracetool/backend/simple.py | 1 - > scripts/tracetool/backend/ust.py | 7 +- > scripts/tracetool/format/c.py | 7 +- > scripts/tracetool/format/tcg_h.py | 6 +- > scripts/tracetool/format/tcg_helper_c.py | 6 +- > scripts/tracetool/format/ust_events_c.py | 2 +- > scripts/tracetool/format/ust_events_h.py | 7 +- > spice-qemu-char.c | 2 +- > tests/Makefile.include | 2 +- > thread-pool.c | 2 +- > trace-events | 10 -- > trace/Makefile.objs | 93 ++---------------- > trace/control-target.c | 2 +- > trace/control.c | 2 +- > trace/ftrace.c | 2 +- > trace/simple.c | 1 - > translate-all.c | 2 +- > vl.c | 2 +- > xen-hvm.c | 2 +- > xen-mapcache.c | 2 +- > 53 files changed, 385 insertions(+), 258 deletions(-) > create mode 100644 hw/block/dataplane/trace-events > create mode 100644 hw/i386/xen/trace-events > create mode 100644 hw/xen/trace-events > delete mode 100644 include/trace.h Looks good, I hope to merge v4. Thanks for investigating all the Makefile cruft needed to simplify this. Stefan