On Mon, Feb 17, 2014 at 08:36:19PM +0100, Lluís Vilanova wrote: > Minimizes the amount of backend code, making it simpler to add new/different > backends. > > Also performs other cleanups all around. > > Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> > --- > > Lluís Vilanova (4): > trace: [tracetool] Add method 'Event.api' to build event names > trace: [tracetool,trivial] Style changes > trace: [tracetool] Identify formats directly used by QEMU > trace: [tracetool] Minimize the amount of per-backend code
I think we stretched the concepts of backends and formats too far. There are formats that only work with one backend (like 'stap'). And there are backends that behave differently from all other backends. As a result we're trying to abstract and make common a bunch of stuff that isn't really common. This problem existed before this patch series, but I feel we're going further down a direction that increasingly seems to be wrong. It's simpler if we turn the design inside-out. Instead of making backends export all sorts of interfaces and flags, tracetool should just parse trace-events and hand the list over to the backend. Let the backend do whatever it wants. The format option simply becomes an option telling the backend which type of output to generate (events.h, events.c, .stp, etc). Common behavior should live in plain old Python modules/functions. TL;DR moving to a library design would simplify and clean up more than trying to improve the current framework design What do you think? Stefan