perf stat: Fix bug in handling events in error state
authorStephane Eranian <eranian@google.com>
Wed, 12 Apr 2017 18:23:01 +0000 (11:23 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 13 Apr 2017 13:40:36 +0000 (10:40 -0300)
commitdb49a71798a38f3ddf3f3462703328dca39b1ac7
treec6c7ba37ba155f9e89314f65059f9c3f3a699fcf
parent7be6b3166ebf2c10c28ef5777d1b31a937ed8f7a
perf stat: Fix bug in handling events in error state

(This is a patch has been sitting in the Intel CQM/CMT driver series for
 a while, despite not depend on it. Sending it now independently since
 the series is being discarded.)

When an event is in error state, read() returns 0 instead of sizeof()
buffer. In certain modes, such as interval printing, ignoring the 0
return value may cause bogus count deltas to be computed and thus
invalid results printed.

This patch fixes this problem by modifying read_counters() to mark the
event as not scaled (scaled = -1) to force the printout routine to show
<NOT COUNTED>.

Signed-off-by: Stephane Eranian <eranian@google.com>
Reviewed-by: David Carrillo-Cisneros <davidcc@google.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412182301.44406-1-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-stat.c
tools/perf/util/evsel.c