perf trace: Fix summary percentage when processing files
authorDavid Ahern <dsahern@gmail.com>
Thu, 5 Dec 2013 02:41:41 +0000 (19:41 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 5 Dec 2013 13:09:58 +0000 (10:09 -0300)
Getting a divide by 0 when events are processed from a file:

   perf trace -i perf.data -s
   ...
   dnsmasq (1684), 10 events, inf%, 0.000 msec

The problem is that the event count is not incremented as events are
processed. With this patch:

   perf trace -i perf.data -s
   ...
   dnsmasq (1684), 10 events, 8.9%, 0.000 msec

Signed-off-by: David Ahern <dsahern@gmail.com>
Link: http://lkml.kernel.org/r/1386211302-31303-4-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-trace.c

index a7aa771a98e625c70258db1c44b5ee911b5aa16d..56bbca5bc2dc1b89c46b57f3ad19169391dd150f 100644 (file)
@@ -1770,8 +1770,10 @@ static int trace__process_sample(struct perf_tool *tool,
        if (!trace->full_time && trace->base_time == 0)
                trace->base_time = sample->time;
 
-       if (handler)
+       if (handler) {
+               ++trace->nr_events;
                handler(trace, evsel, sample);
+       }
 
        return err;
 }