linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
	Ravi Bangoria <ravi.bangoria@linux.ibm.com>,
	Naveen N Rao <naveen.n.rao@linux.vnet.ibm.com>
Subject: [PATCH 2/2] perf/stat: Fix a segmentation fault when using repeat forever
Date: Wed,  4 Sep 2019 15:17:38 +0530	[thread overview]
Message-ID: <20190904094738.9558-3-srikar@linux.vnet.ibm.com> (raw)
In-Reply-To: <20190904094738.9558-1-srikar@linux.vnet.ibm.com>

Observe a segmentation fault when perf stat is asked to repeat forever
with the interval option.

Without fix:
perf stat -r 0 -I 5000 -e cycles -a sleep 10
 #           time             counts unit events
     5.000211692  3,13,89,82,34,157      cycles
    10.000380119  1,53,98,52,22,294      cycles
    10.040467280       17,16,79,265      cycles
Segmentation fault

This problem was only observed when we use forever option aka -r 0 and
works with limited repeats. Calling print_counter with ts being set to
NULL, is not a correct option when interval is set. Hence avoid
print_counter(NULL,..)  if interval is set.

With fix:
perf stat -r 0 -I 5000 -e cycles -a sleep 10
 #           time             counts unit events
     5.019866622  3,15,14,43,08,697      cycles
    10.039865756  3,15,16,31,95,261      cycles
    10.059950628     1,26,05,47,158      cycles
     5.009902655  3,14,52,62,33,932      cycles
    10.019880228  3,14,52,22,89,154      cycles
    10.030543876       66,90,18,333      cycles
     5.009848281  3,14,51,98,25,437      cycles
    10.029854402  3,15,14,93,04,918      cycles
     5.009834177  3,14,51,95,92,316      cycles

Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
---
 tools/perf/builtin-stat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index eda451842bfd..8ec06bf3372c 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1965,7 +1965,7 @@ int cmd_stat(int argc, const char **argv)
 			perf_evlist__reset_prev_raw_counts(evsel_list);
 
 		status = run_perf_stat(argc, argv, run_idx);
-		if (forever && status != -1) {
+		if (forever && status != -1 && !interval) {
 			print_counters(NULL, argc, argv);
 			perf_stat__reset_stats();
 		}
-- 
2.18.1


  parent reply	other threads:[~2019-09-04  9:48 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-04  9:47 [PATCH 0/2] Perf/stat: Solve problems with repeat and interval Srikar Dronamraju
2019-09-04  9:47 ` [PATCH 1/2] perf/stat: Reset previous counts on repeat with interval Srikar Dronamraju
2019-09-20 16:20   ` [tip: perf/urgent] perf stat: " tip-bot2 for Srikar Dronamraju
2019-09-04  9:47 ` Srikar Dronamraju [this message]
2019-09-20 16:20   ` [tip: perf/urgent] perf stat: Fix a segmentation fault when using repeat forever tip-bot2 for Srikar Dronamraju
2019-09-04 15:53 ` [PATCH 0/2] Perf/stat: Solve problems with repeat and interval Jiri Olsa
2019-09-11  4:14 ` Ravi Bangoria
2019-09-18 23:05   ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190904094738.9558-3-srikar@linux.vnet.ibm.com \
    --to=srikar@linux.vnet.ibm.com \
    --cc=acme@kernel.org \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=naveen.n.rao@linux.vnet.ibm.com \
    --cc=ravi.bangoria@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).