On Tue, Oct 04, 2016 at 02:35:50PM +0100, Daniel P. Berrange wrote: > Currently simpletrace assumes that events are given IDs > starting from 0, based on the order in which they appear > in the trace-events file, with no gaps. When the > trace-events file is split up, this assumption becomes > problematic. > > To deal with this, extend the simpletrace format so that > it outputs a table of event name <-> ID mappings. That > will allow QEMU to assign arbitrary IDs to events without > breaking simpletrace parsing. > > The v3 simple trace format was > > FILE HEADER > EVENT TRACE RECORD 0 > EVENT TRACE RECORD 1 > ... > EVENT TRACE RECORD N > > The v4 simple trace format is now > > FILE HEADER > EVENT MAPPING RECORD 0 > EVENT MAPPING RECORD 1 > ... > EVENT MAPPING RECORD M > EVENT TRACE RECORD RECORD 0 > EVENT TRACE RECORD RECORD 1 > ... > EVENT TRACE RECORD N > > Although this shows all the mapping records being emitted > upfront, this is not required by the format. While the main > simpletrace backend will emit all mappings at startup, > the systemtap simpletrace.stp script will emit the mappings > at first use. eg > > FILE HEADER > ... > EVENT MAPPING RECORD 0 > EVENT TRACE RECORD RECORD 0 > EVENT TRACE RECORD RECORD 1 > EVENT MAPPING RECORD 1 > EVENT TRACE RECORD RECORD 2 > ... > EVENT TRACE RECORD N > > This is more space efficient given that most trace records > only include a subset of events. > > In modifying the systemtap simpletrace code, a 'begin' probe > was added to emit the trace event header, so you no longer > need to add '--no-header' when running simpletrace.py for > systemtap generated trace files. > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > --- > scripts/simpletrace.py | 50 > ++++++++++++++++++++-------- > scripts/tracetool/format/simpletrace_stap.py | 24 +++++++++++-- > trace/simple.c | 33 ++++++++++++++++-- > 3 files changed, 89 insertions(+), 18 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature