qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/6] trace: [ŧracetool ] Do not precompute the e


From: Harsh Bora
Subject: Re: [Qemu-devel] [PATCH 3/6] trace: [ŧracetool ] Do not precompute the event number
Date: Wed, 18 Jan 2012 15:18:02 +0530
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100621 Fedora/3.0.5-1.fc13 Thunderbird/3.0.5

On 01/11/2012 11:35 PM, Lluís Vilanova wrote:
This would otherwise break event numbering when actually using the "disable"
property.


IIUC, event numbering does include disabled events too, are you proposing not to include disabled events in event numbering ? That will affect interpreting event numbers while reading trace logs also.

- Harsh


Signed-off-by: Lluís Vilanova<address@hidden>
---
  scripts/tracetool.py |   21 +++++++++------------
  1 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/scripts/tracetool.py b/scripts/tracetool.py
index 7a877dc..b7401a3 100755
--- a/scripts/tracetool.py
+++ b/scripts/tracetool.py
@@ -128,7 +128,7 @@ def simple_h(events):
      'args': event.args
  }
      print
-    print '#define NR_TRACE_EVENTS %d' % (event.num + 1)
+    print '#define NR_TRACE_EVENTS %d' % len(events)
      print 'extern TraceEvent trace_list[NR_TRACE_EVENTS];'

      return
@@ -154,7 +154,7 @@ def simple_c(events):
          print
      print '};'
      print
-    for event in events:
+    for num, event in enumerate(events):
          argc = event.argc
          print '''void trace_%(name)s(%(args)s)
  {
@@ -169,12 +169,12 @@ def simple_c(events):
  ''' % {
      'name': event.name,
      'args': event.args,
-    'event_id': event.num,
+    'event_id': num,
  }
          print '''
      tbuf_idx = trace_alloc_record(%(event_id)s, %(sizestr)s);
      rec_off = (tbuf_idx + ST_V2_REC_HDR_LEN) %% TRACE_BUF_LEN; /* seek record 
header */
-''' % {'event_id': event.num, 'sizestr': event.sizestr,}
+''' % {'event_id': num, 'sizestr': event.sizestr,}

          if argc>  0:
              str = event.arglist
@@ -220,7 +220,7 @@ def stderr_h(events):
  #include "trace/stderr.h"

  extern TraceEvent trace_list[];'''
-    for event in events:
+    for num, event in enumerate(events):
          argnames = event.argnames
          if event.argc>  0:
              argnames = ', ' + event.argnames
@@ -235,12 +235,12 @@ static inline void trace_%(name)s(%(args)s)
  }''' % {
      'name': event.name,
      'args': event.args,
-    'event_num': event.num,
+    'event_num': num,
      'fmt': event.fmt.rstrip('\n'),
      'argnames': argnames
  }
      print
-    print '#define NR_TRACE_EVENTS %d' % (event.num + 1)
+    print '#define NR_TRACE_EVENTS %d' % len(events)

  def stderr_c(events):
      print '''#include "trace.h"
@@ -475,8 +475,7 @@ import re
  cre = re.compile("(?P<name>[^(\s]+)\((?P<args>[^)]*)\)\s*(?P<fmt>\".*\")?")

  class Event(object):
-    def __init__(self, num, line):
-        self.num = num
+    def __init__(self, line):
          m = cre.match(line)
          assert m is not None
          groups = m.groupdict('')
@@ -491,14 +490,12 @@ class Event(object):
  # Generator that yields Event objects given a trace-events file object
  def read_events(fobj):
      res = []
-    event_num = 0
      for line in fobj:
          if not line.strip():
              continue
          if line.lstrip().startswith('#'):
            continue
-       res.append(Event(event_num, line))
-       event_num += 1
+       res.append(Event(line))
      return res

  backend = ""






reply via email to

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