All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Jin Yao <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org,
	mingo@kernel.org, yao.jin@linux.intel.com, ak@linux.intel.com,
	alexander.shishkin@linux.intel.com, hpa@zytor.com,
	tglx@linutronix.de, acme@redhat.com, jolsa@redhat.com,
	kan.liang@intel.com
Subject: [tip:perf/core] perf script: Remove the time slices number limitation
Date: Wed, 17 Jan 2018 08:37:55 -0800	[thread overview]
Message-ID: <tip-cc2ef584a863b7c8033b78723cd253ca47e9a589@git.kernel.org> (raw)
In-Reply-To: <1515596433-24653-9-git-send-email-yao.jin@linux.intel.com>

Commit-ID:  cc2ef584a863b7c8033b78723cd253ca47e9a589
Gitweb:     https://git.kernel.org/tip/cc2ef584a863b7c8033b78723cd253ca47e9a589
Author:     Jin Yao <yao.jin@linux.intel.com>
AuthorDate: Wed, 10 Jan 2018 23:00:33 +0800
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 17 Jan 2018 10:23:37 -0300

perf script: Remove the time slices number limitation

Previously it was only allowed to use at most 10 time slices in 'perf
script --time'.

This patch removes this limitation.
For example, following command line is OK (12 time slices)

perf script --time 1%/1,1%/2,1%/3,1%/4,1%/5,1%/6,1%/7,1%/8,1%/9,1%/10,1%/11,1%/12

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Suggested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1515596433-24653-9-git-send-email-yao.jin@linux.intel.com
[ No need to check for NULL to call free, use zfree ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/Documentation/perf-script.txt | 10 +++++-----
 tools/perf/builtin-script.c              | 16 ++++++++++++----
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index 806ec63..7730c1d 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -351,19 +351,19 @@ include::itrace.txt[]
 	to end of file.
 
 	Also support time percent with multipe time range. Time string is
-	'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'. The maximum number of slices is 10.
+	'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'.
 
 	For example:
-	Select the second 10% time slice
+	Select the second 10% time slice:
 	perf script --time 10%/2
 
-	Select from 0% to 10% time slice
+	Select from 0% to 10% time slice:
 	perf script --time 0%-10%
 
-	Select the first and second 10% time slices
+	Select the first and second 10% time slices:
 	perf script --time 10%/1,10%/2
 
-	Select from 0% to 10% and 30% to 40% slices
+	Select from 0% to 10% and 30% to 40% slices:
 	perf script --time 0%-10%,30%-40%
 
 --max-blocks::
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index ac78191..3499d68 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1480,8 +1480,6 @@ static int perf_sample__fprintf_synth(struct perf_sample *sample,
 	return 0;
 }
 
-#define PTIME_RANGE_MAX	10
-
 struct perf_script {
 	struct perf_tool	tool;
 	struct perf_session	*session;
@@ -1496,7 +1494,8 @@ struct perf_script {
 	struct thread_map	*threads;
 	int			name_width;
 	const char              *time_str;
-	struct perf_time_interval ptime_range[PTIME_RANGE_MAX];
+	struct perf_time_interval *ptime_range;
+	int			range_size;
 	int			range_num;
 };
 
@@ -3445,6 +3444,13 @@ int cmd_script(int argc, const char **argv)
 	if (err < 0)
 		goto out_delete;
 
+	script.ptime_range = perf_time__range_alloc(script.time_str,
+						    &script.range_size);
+	if (!script.ptime_range) {
+		err = -ENOMEM;
+		goto out_delete;
+	}
+
 	/* needs to be parsed after looking up reference time */
 	if (perf_time__parse_str(script.ptime_range, script.time_str) != 0) {
 		if (session->evlist->first_sample_time == 0 &&
@@ -3457,7 +3463,7 @@ int cmd_script(int argc, const char **argv)
 		}
 
 		script.range_num = perf_time__percent_parse_str(
-					script.ptime_range, PTIME_RANGE_MAX,
+					script.ptime_range, script.range_size,
 					script.time_str,
 					session->evlist->first_sample_time,
 					session->evlist->last_sample_time);
@@ -3476,6 +3482,8 @@ int cmd_script(int argc, const char **argv)
 	flush_scripting();
 
 out_delete:
+	zfree(&script.ptime_range);
+
 	perf_evlist__free_stats(session->evlist);
 	perf_session__delete(session);
 

  reply	other threads:[~2018-01-17 16:40 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-10 15:00 [PATCH v1 0/8] perf: Follow-up patches to improve time slice Jin Yao
2018-01-10 15:00 ` [PATCH v1 1/8] perf report: Improve error msg when no first/last sample time found Jin Yao
2018-01-17 16:34   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 2/8] perf script: " Jin Yao
2018-01-17 16:35   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 3/8] perf util: Improve error checking for time percent input Jin Yao
2018-01-17 16:35   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 4/8] perf util: Support no index time percent slice Jin Yao
2018-01-17 16:36   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 5/8] perf report: Add an indication of what time slices are used Jin Yao
2018-01-17 16:36   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 6/8] perf util: Allocate time slices buffer according to number of comma Jin Yao
2018-01-17 16:37   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 7/8] perf report: Remove the time slices number limitation Jin Yao
2018-01-16 14:45   ` Arnaldo Carvalho de Melo
2018-01-17 16:37   ` [tip:perf/core] " tip-bot for Jin Yao
2018-01-10 15:00 ` [PATCH v1 8/8] perf script: " Jin Yao
2018-01-17 16:37   ` tip-bot for Jin Yao [this message]
2018-01-16 11:55 ` [PATCH v1 0/8] perf: Follow-up patches to improve time slice Jiri Olsa
2018-01-16 12:31   ` Jin, Yao
2018-01-16 14:48   ` Arnaldo Carvalho de Melo
2018-01-17  1:18     ` Jin, Yao

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=tip-cc2ef584a863b7c8033b78723cd253ca47e9a589@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=acme@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@redhat.com \
    --cc=kan.liang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=yao.jin@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.