qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] trace: [ust] Fix format string computation in tcg-enabled events
@ 2014-08-18 13:02 Lluís Vilanova
  2014-08-27  9:58 ` Lluís Vilanova
  2014-08-28 10:35 ` Stefan Hajnoczi
  0 siblings, 2 replies; 3+ messages in thread
From: Lluís Vilanova @ 2014-08-18 13:02 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée, Stefan Hajnoczi

TCG-enabled events start with two format strings. Delay per-argument format
computation until requested ('Event.formats').

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 scripts/tracetool/__init__.py            |   19 ++++++++++---------
 scripts/tracetool/format/ust_events_h.py |    2 +-
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index 36c789d..854fb9e 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -136,8 +136,7 @@ class Event(object):
         Properties of the event.
     args : Arguments
         The event arguments.
-    arg_fmts : str
-        The format strings for each argument.
+
     """
 
     _CRE = re.compile("((?P<props>.*)\s+)?"
@@ -146,11 +145,10 @@ class Event(object):
                       "\s*"
                       "(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?"
                       "\s*")
-    _FMT = re.compile("(%\w+|%.*PRI\S+)")
 
     _VALID_PROPS = set(["disable", "tcg", "tcg-trans", "tcg-exec"])
 
-    def __init__(self, name, props, fmt, args, arg_fmts, orig=None):
+    def __init__(self, name, props, fmt, args, orig=None):
         """
         Parameters
         ----------
@@ -162,8 +160,6 @@ class Event(object):
             Event printing format (or formats).
         args : Arguments
             Event arguments.
-        arg_fmts : list of str
-            Format strings for each argument.
         orig : Event or None
             Original Event before transformation.
 
@@ -172,7 +168,6 @@ class Event(object):
         self.properties = props
         self.fmt = fmt
         self.args = args
-        self.arg_fmts = arg_fmts
 
         if orig is None:
             self.original = weakref.ref(self)
@@ -210,7 +205,6 @@ class Event(object):
         if len(fmt_trans) > 0:
             fmt = [fmt_trans, fmt]
         args = Arguments.build(groups["args"])
-        arg_fmts = Event._FMT.findall(fmt)
 
         if "tcg-trans" in props:
             raise ValueError("Invalid property 'tcg-trans'")
@@ -221,7 +215,7 @@ class Event(object):
         if "tcg" in props and isinstance(fmt, str):
             raise ValueError("Events with 'tcg' property must have two formats")
 
-        return Event(name, props, fmt, args, arg_fmts)
+        return Event(name, props, fmt, args)
 
     def __repr__(self):
         """Evaluable string representation for this object."""
@@ -234,6 +228,13 @@ class Event(object):
                                           self.args,
                                           fmt)
 
+    _FMT = re.compile("(%\w+|%.*PRI\S+)")
+
+    def formats(self):
+        """List of argument print formats."""
+        assert not isinstance(self.fmt, list)
+        return self._FMT.findall(self.fmt)
+
     QEMU_TRACE               = "trace_%(name)s"
     QEMU_TRACE_TCG           = QEMU_TRACE + "_tcg"
 
diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/format/ust_events_h.py
index d189899..3e8a7cd 100644
--- a/scripts/tracetool/format/ust_events_h.py
+++ b/scripts/tracetool/format/ust_events_h.py
@@ -65,7 +65,7 @@ def generate(events, backend):
 
             types = e.args.types()
             names = e.args.names()
-            fmts = e.arg_fmts
+            fmts = e.formats()
             for t,n,f in zip(types, names, fmts):
                 if ('char *' in t) or ('char*' in t):
                     out('       ctf_string(' + n + ', ' + n + ')')

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

* Re: [Qemu-devel] [PATCH] trace: [ust] Fix format string computation in tcg-enabled events
  2014-08-18 13:02 [Qemu-devel] [PATCH] trace: [ust] Fix format string computation in tcg-enabled events Lluís Vilanova
@ 2014-08-27  9:58 ` Lluís Vilanova
  2014-08-28 10:35 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Lluís Vilanova @ 2014-08-27  9:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée, Stefan Hajnoczi

Lluís Vilanova writes:

> TCG-enabled events start with two format strings. Delay per-argument format
> computation until requested ('Event.formats').

ping

Without this fix, QEMU does not compile if an entry in trace-events has the
"tcg" property.


> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  scripts/tracetool/__init__.py            |   19 ++++++++++---------
>  scripts/tracetool/format/ust_events_h.py |    2 +-
>  2 files changed, 11 insertions(+), 10 deletions(-)

> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> index 36c789d..854fb9e 100644
> --- a/scripts/tracetool/__init__.py
> +++ b/scripts/tracetool/__init__.py
> @@ -136,8 +136,7 @@ class Event(object):
>          Properties of the event.
>      args : Arguments
>          The event arguments.
> -    arg_fmts : str
> -        The format strings for each argument.
> +
>      """
 
>      _CRE = re.compile("((?P<props>.*)\s+)?"
> @@ -146,11 +145,10 @@ class Event(object):
>                        "\s*"
>                        "(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?"
>                        "\s*")
> -    _FMT = re.compile("(%\w+|%.*PRI\S+)")
 
>      _VALID_PROPS = set(["disable", "tcg", "tcg-trans", "tcg-exec"])
 
> -    def __init__(self, name, props, fmt, args, arg_fmts, orig=None):
> +    def __init__(self, name, props, fmt, args, orig=None):
>          """
>          Parameters
>          ----------
> @@ -162,8 +160,6 @@ class Event(object):
>              Event printing format (or formats).
>          args : Arguments
>              Event arguments.
> -        arg_fmts : list of str
> -            Format strings for each argument.
>          orig : Event or None
>              Original Event before transformation.
 
> @@ -172,7 +168,6 @@ class Event(object):
>          self.properties = props
>          self.fmt = fmt
>          self.args = args
> -        self.arg_fmts = arg_fmts
 
>          if orig is None:
>              self.original = weakref.ref(self)
> @@ -210,7 +205,6 @@ class Event(object):
>          if len(fmt_trans) > 0:
>              fmt = [fmt_trans, fmt]
>          args = Arguments.build(groups["args"])
> -        arg_fmts = Event._FMT.findall(fmt)
 
>          if "tcg-trans" in props:
>              raise ValueError("Invalid property 'tcg-trans'")
> @@ -221,7 +215,7 @@ class Event(object):
>          if "tcg" in props and isinstance(fmt, str):
>              raise ValueError("Events with 'tcg' property must have two formats")
 
> -        return Event(name, props, fmt, args, arg_fmts)
> +        return Event(name, props, fmt, args)
 
>      def __repr__(self):
>          """Evaluable string representation for this object."""
> @@ -234,6 +228,13 @@ class Event(object):
>                                            self.args,
>                                            fmt)
 
> +    _FMT = re.compile("(%\w+|%.*PRI\S+)")
> +
> +    def formats(self):
> +        """List of argument print formats."""
> +        assert not isinstance(self.fmt, list)
> +        return self._FMT.findall(self.fmt)
> +
>      QEMU_TRACE               = "trace_%(name)s"
>      QEMU_TRACE_TCG           = QEMU_TRACE + "_tcg"
 
> diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/format/ust_events_h.py
> index d189899..3e8a7cd 100644
> --- a/scripts/tracetool/format/ust_events_h.py
> +++ b/scripts/tracetool/format/ust_events_h.py
> @@ -65,7 +65,7 @@ def generate(events, backend):
 
>              types = e.args.types()
>              names = e.args.names()
> -            fmts = e.arg_fmts
> +            fmts = e.formats()
>              for t,n,f in zip(types, names, fmts):
>                  if ('char *' in t) or ('char*' in t):
>                      out('       ctf_string(' + n + ', ' + n + ')')



-- 
 "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] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] trace: [ust] Fix format string computation in tcg-enabled events
  2014-08-18 13:02 [Qemu-devel] [PATCH] trace: [ust] Fix format string computation in tcg-enabled events Lluís Vilanova
  2014-08-27  9:58 ` Lluís Vilanova
@ 2014-08-28 10:35 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2014-08-28 10:35 UTC (permalink / raw)
  To: Lluís Vilanova; +Cc: Alex Bennée, qemu-devel, Stefan Hajnoczi

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

On Mon, Aug 18, 2014 at 03:02:07PM +0200, Lluís Vilanova wrote:
> TCG-enabled events start with two format strings. Delay per-argument format
> computation until requested ('Event.formats').
> 
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  scripts/tracetool/__init__.py            |   19 ++++++++++---------
>  scripts/tracetool/format/ust_events_h.py |    2 +-
>  2 files changed, 11 insertions(+), 10 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] 3+ messages in thread

end of thread, other threads:[~2014-08-28 10:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-18 13:02 [Qemu-devel] [PATCH] trace: [ust] Fix format string computation in tcg-enabled events Lluís Vilanova
2014-08-27  9:58 ` Lluís Vilanova
2014-08-28 10:35 ` 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).