Daniel P Berrange writes: > On Wed, Aug 10, 2016 at 06:11:24PM +0200, Lluís Vilanova wrote: >> Daniel P Berrange writes: >> >> > On Wed, Aug 10, 2016 at 04:33:47PM +0200, Lluís Vilanova wrote: >> >> Daniel P Berrange writes: [...] >> >> For example, first we concatenate /trace-events, /io/trace-events and >> >> /hw/usb/trace-events into /trace-events-all to produce: >> >> >> >> @group core >> >> @dir / >> >> # contents of /trace-events >> >> @group io >> >> @dir /io >> >> # contents of /io/trace-events >> >> @group hw_usb >> >> @dir /hw/usb >> >> # contents of /hw/usb/trace-events >> >> >> >> Then we can use /trace-events-all to generate all the per-directory >> >> trace.h >> >> files while ensuring a perfectly flat event identifier space (a single >> >> generated-events.c is used). >> >> >> >> This should minimize changes to tracing code and avoid further >> >> restrictions >> >> (like the "top-level vcpu" one). >> >> > That means when any individual trace file is changed, we re-generate the >> > world, which is exactly what this series is designed to avoid. >> >> Nope. We re-generate /trace-events-all, but each individual file generated >> afterwards (taken from the "@dir" directive) will change only if its new >> contents do (the Makefile uses cmp to check if files need updating from their >> corresponding timestamp file).
> The contents will still need to change too if we have a global numbering > space as your suggestion requires. The event groups are the only way to > avoid that. Aha, that's true. I didn't think of that, sorry. Cheers, Lluis
