qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces
@ 2014-11-02 21:37 christoph.seifert
  2014-11-17 16:22 ` Stefan Hajnoczi
  2014-11-18 14:07 ` Stefan Hajnoczi
  0 siblings, 2 replies; 5+ messages in thread
From: christoph.seifert @ 2014-11-02 21:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Christoph Seifert, stefanha

From: Christoph Seifert <christoph.seifert@posteo.de>

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 <christoph.seifert@posteo.de>
---
 scripts/tracetool/__init__.py | 67 +++++++++++++++++++++----------------------
 1 file changed, 33 insertions(+), 34 deletions(-)

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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces
  2014-11-02 21:37 [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces christoph.seifert
@ 2014-11-17 16:22 ` Stefan Hajnoczi
  2014-11-18  1:57   ` Lluís Vilanova
  2014-11-18 14:07 ` Stefan Hajnoczi
  1 sibling, 1 reply; 5+ messages in thread
From: Stefan Hajnoczi @ 2014-11-17 16:22 UTC (permalink / raw)
  To: christoph.seifert; +Cc: qemu-devel, stefanha, Lluís Vilanova

[-- Attachment #1: Type: text/plain, Size: 3923 bytes --]

On Sun, Nov 02, 2014 at 10:37:59PM +0100, christoph.seifert@posteo.de wrote:
> From: Christoph Seifert <christoph.seifert@posteo.de>
> 
> 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 <christoph.seifert@posteo.de>
> ---
>  scripts/tracetool/__init__.py | 67 +++++++++++++++++++++----------------------
>  1 file changed, 33 insertions(+), 34 deletions(-)

Looks good to me.

Lluís: Any comments?

> 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
> 
> 

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces
  2014-11-17 16:22 ` Stefan Hajnoczi
@ 2014-11-18  1:57   ` Lluís Vilanova
  2014-11-18 14:05     ` Stefan Hajnoczi
  0 siblings, 1 reply; 5+ messages in thread
From: Lluís Vilanova @ 2014-11-18  1:57 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: christoph.seifert, qemu-devel, stefanha

Stefan Hajnoczi writes:

> On Sun, Nov 02, 2014 at 10:37:59PM +0100, christoph.seifert@posteo.de wrote:
>> From: Christoph Seifert <christoph.seifert@posteo.de>
>> 
>> 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 <christoph.seifert@posteo.de>
>> ---
>> 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces
  2014-11-18  1:57   ` Lluís Vilanova
@ 2014-11-18 14:05     ` Stefan Hajnoczi
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2014-11-18 14:05 UTC (permalink / raw)
  To: Stefan Hajnoczi, christoph.seifert, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 969 bytes --]

On Mon, Nov 17, 2014 at 07:57:08PM -0600, Lluís Vilanova wrote:
> Stefan Hajnoczi writes:
> 
> > On Sun, Nov 02, 2014 at 10:37:59PM +0100, christoph.seifert@posteo.de wrote:
> >> From: Christoph Seifert <christoph.seifert@posteo.de>
> >> 
> >> 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 <christoph.seifert@posteo.de>
> >> ---
> >> 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.

Fantastic, thanks for your time, Lluís!

Stefan

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces
  2014-11-02 21:37 [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces christoph.seifert
  2014-11-17 16:22 ` Stefan Hajnoczi
@ 2014-11-18 14:07 ` Stefan Hajnoczi
  1 sibling, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2014-11-18 14:07 UTC (permalink / raw)
  To: christoph.seifert; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 706 bytes --]

On Sun, Nov 02, 2014 at 10:37:59PM +0100, christoph.seifert@posteo.de wrote:
> From: Christoph Seifert <christoph.seifert@posteo.de>
> 
> 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 <christoph.seifert@posteo.de>
> ---
>  scripts/tracetool/__init__.py | 67 +++++++++++++++++++++----------------------
>  1 file changed, 33 insertions(+), 34 deletions(-)

Thanks, applied to my tracing tree:
https://github.com/stefanha/qemu/commits/tracing

Stefan

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-11-18 14:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-02 21:37 [Qemu-devel] [PATCH] Tracing: Fix simpletrace.py error on tcg enabled binary traces christoph.seifert
2014-11-17 16:22 ` Stefan Hajnoczi
2014-11-18  1:57   ` Lluís Vilanova
2014-11-18 14:05     ` Stefan Hajnoczi
2014-11-18 14:07 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).