qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enable


From: Lluís Vilanova
Subject: Re: [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces
Date: Mon, 17 Nov 2014 19:57:08 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

Stefan Hajnoczi writes:

> On Sun, Nov 02, 2014 at 10:37:59PM +0100, address@hidden wrote:
>> From: Christoph Seifert <address@hidden>
>> 
>> simpletrace.py does not recognize the tcg option while reading trace-events
>> file. In result simpletrace does not work on binary traces and tcg enabled
>> events. Moved transformation of tcg enabled events to _read_events() which is
>> used by simpletrace.
>> 
>> Signed-off-by: Christoph Seifert <address@hidden>
>> ---
>> scripts/tracetool/__init__.py | 67 
>> +++++++++++++++++++++----------------------
>> 1 file changed, 33 insertions(+), 34 deletions(-)

> Looks good to me.

> Lluís: Any comments?

I've looked at how it affects some patches I did not have time yet to send, and
everything looks good.


>> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
>> index 3d5743f..181675f 100644
>> --- a/scripts/tracetool/__init__.py
>> +++ b/scripts/tracetool/__init__.py
>> @@ -253,14 +253,44 @@ class Event(object):
>> 
>> 
>> def _read_events(fobj):
>> -    res = []
>> +    events = []
>> for line in fobj:
>> if not line.strip():
>> continue
>> if line.lstrip().startswith('#'):
>> continue
>> -        res.append(Event.build(line))
>> -    return res
>> +
>> +        event = Event.build(line)
>> +
>> +        # transform TCG-enabled events
>> +        if "tcg" not in event.properties:
>> +            events.append(event)
>> +        else:
>> +            event_trans = event.copy()
>> +            event_trans.name += "_trans"
>> +            event_trans.properties += ["tcg-trans"]
>> +            event_trans.fmt = event.fmt[0]
>> +            args_trans = []
>> +            for atrans, aorig in zip(
>> +                    
>> event_trans.transform(tracetool.transform.TCG_2_HOST).args,
>> +                    event.args):
>> +                if atrans == aorig:
>> +                    args_trans.append(atrans)
>> +            event_trans.args = Arguments(args_trans)
>> +            event_trans = event_trans.copy()
>> +
>> +            event_exec = event.copy()
>> +            event_exec.name += "_exec"
>> +            event_exec.properties += ["tcg-exec"]
>> +            event_exec.fmt = event.fmt[1]
>> +            event_exec = 
>> event_exec.transform(tracetool.transform.TCG_2_HOST)
>> +
>> +            new_event = [event_trans, event_exec]
>> +            event.event_trans, event.event_exec = new_event
>> +
>> +            events.extend(new_event)
>> +
>> +    return events
>> 
>> 
>> class TracetoolError (Exception):
>> @@ -333,35 +363,4 @@ def generate(fevents, format, backends,
>> 
>> events = _read_events(fevents)
>> 
>> -    # transform TCG-enabled events
>> -    new_events = []
>> -    for event in events:
>> -        if "tcg" not in event.properties:
>> -            new_events.append(event)
>> -        else:
>> -            event_trans = event.copy()
>> -            event_trans.name += "_trans"
>> -            event_trans.properties += ["tcg-trans"]
>> -            event_trans.fmt = event.fmt[0]
>> -            args_trans = []
>> -            for atrans, aorig in zip(
>> -                    
>> event_trans.transform(tracetool.transform.TCG_2_HOST).args,
>> -                    event.args):
>> -                if atrans == aorig:
>> -                    args_trans.append(atrans)
>> -            event_trans.args = Arguments(args_trans)
>> -            event_trans = event_trans.copy()
>> -
>> -            event_exec = event.copy()
>> -            event_exec.name += "_exec"
>> -            event_exec.properties += ["tcg-exec"]
>> -            event_exec.fmt = event.fmt[1]
>> -            event_exec = 
>> event_exec.transform(tracetool.transform.TCG_2_HOST)
>> -
>> -            new_event = [event_trans, event_exec]
>> -            event.event_trans, event.event_exec = new_event
>> -
>> -            new_events.extend(new_event)
>> -    events = new_events
>> -
>> tracetool.format.generate(events, format, backend)
>> -- 
>> 2.1.3
>> 
>> 

-- 
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom
 Tollbooth



reply via email to

[Prev in Thread] Current Thread [Next in Thread]