From: Alexey Budankov <alexey.budankov@linux.intel.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>, Andi Kleen <ak@linux.intel.com>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: [PATCH v5 11/13] perf record: extend -D,--delay option with -1 value
Date: Mon, 1 Jun 2020 19:03:42 +0300 [thread overview]
Message-ID: <eabfe83d-3123-6080-a331-c195b65d1387@linux.intel.com> (raw)
In-Reply-To: <e5cac8dd-7aa4-ec7c-671c-07756907acba@linux.intel.com>
Extend -D,--delay option with -1 to start collection
with events disabled to be enbled later by enable
command provided via control file descriptor.
Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
---
tools/perf/Documentation/perf-record.txt | 5 +++--
tools/perf/builtin-record.c | 12 ++++++++----
tools/perf/builtin-trace.c | 2 +-
tools/perf/util/record.h | 2 +-
4 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
index fa8a5fcd27ab..a84376605805 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -407,8 +407,9 @@ if combined with -a or -C options.
-D::
--delay=::
-After starting the program, wait msecs before measuring. This is useful to
-filter out the startup phase of the program, which is often very different.
+After starting the program, wait msecs before measuring (-1: start with events
+disabled). This is useful to filter out the startup phase of the program, which
+is often very different.
-I::
--intr-regs::
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index e108d90ae2ed..d0b29a1070a0 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -1749,8 +1749,12 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
}
if (opts->initial_delay) {
- usleep(opts->initial_delay * USEC_PER_MSEC);
- evlist__enable(rec->evlist);
+ pr_info(EVLIST_DISABLED_MSG);
+ if (opts->initial_delay > 0) {
+ usleep(opts->initial_delay * USEC_PER_MSEC);
+ evlist__enable(rec->evlist);
+ pr_info(EVLIST_ENABLED_MSG);
+ }
}
trigger_ready(&auxtrace_snapshot_trigger);
@@ -2462,8 +2466,8 @@ static struct option __record_options[] = {
OPT_CALLBACK('G', "cgroup", &record.evlist, "name",
"monitor event in cgroup name only",
parse_cgroups),
- OPT_UINTEGER('D', "delay", &record.opts.initial_delay,
- "ms to wait before starting measurement after program start"),
+ OPT_INTEGER('D', "delay", &record.opts.initial_delay,
+ "ms to wait before starting measurement after program start (-1: start with events disabled)"),
OPT_BOOLEAN(0, "kcore", &record.opts.kcore, "copy /proc/kcore"),
OPT_STRING('u', "uid", &record.opts.target.uid_str, "user",
"user to profile"),
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 4cbb64edc998..290149b1b3b5 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -4813,7 +4813,7 @@ int cmd_trace(int argc, const char **argv)
"per thread proc mmap processing timeout in ms"),
OPT_CALLBACK('G', "cgroup", &trace, "name", "monitor event in cgroup name only",
trace__parse_cgroups),
- OPT_UINTEGER('D', "delay", &trace.opts.initial_delay,
+ OPT_INTEGER('D', "delay", &trace.opts.initial_delay,
"ms to wait before starting measurement after program "
"start"),
OPTS_EVSWITCH(&trace.evswitch),
diff --git a/tools/perf/util/record.h b/tools/perf/util/record.h
index 39d1de4b2a36..da138dcb4d34 100644
--- a/tools/perf/util/record.h
+++ b/tools/perf/util/record.h
@@ -61,7 +61,7 @@ struct record_opts {
const char *auxtrace_snapshot_opts;
const char *auxtrace_sample_opts;
bool sample_transaction;
- unsigned initial_delay;
+ int initial_delay;
bool use_clockid;
clockid_t clockid;
u64 clockid_res_ns;
--
2.24.1
next prev parent reply other threads:[~2020-06-01 16:03 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-01 15:46 [PATCH v5 00/13] perf: support enable and disable commands in stat and record modes Alexey Budankov
2020-06-01 15:51 ` [PATCH v5 01/13] tools/libperf: introduce static poll file descriptors Alexey Budankov
2020-06-01 15:51 ` [PATCH v5 02/13] perf evlist: introduce control " Alexey Budankov
2020-06-01 15:52 ` [PATCH v5 03/13] perf evlist: implement control command handling functions Alexey Budankov
2020-06-01 15:53 ` [PATCH v5 04/13] perf stat: factor out body of event handling loop for system wide Alexey Budankov
2020-06-01 15:55 ` [PATCH v5 05/13] perf stat: move target check to loop control statement Alexey Budankov
2020-06-01 15:55 ` [PATCH v5 06/13] perf stat: factor out body of event handling loop for launch case Alexey Budankov
2020-06-01 15:56 ` [PATCH v5 07/13] perf stat: factor out event handling loop into dispatch_events() Alexey Budankov
2020-06-01 15:58 ` [PATCH v5 08/13] perf stat: extend -D,--delay option with -1 value Alexey Budankov
2020-06-01 16:02 ` [PATCH v5 09/13] perf stat: implement control commands handling Alexey Budankov
2020-06-01 16:03 ` [PATCH v5 10/13] perf stat: introduce --ctl-fd[-ack] options Alexey Budankov
2020-06-01 16:03 ` Alexey Budankov [this message]
2020-06-01 16:04 ` [PATCH v5 12/13] perf record: implement control commands handling Alexey Budankov
2020-06-01 16:05 ` [PATCH v5 13/13] perf record: introduce --ctl-fd[-ack] options Alexey Budankov
2020-06-01 16:30 ` Adrian Hunter
2020-06-01 17:11 ` Alexey Budankov
2020-06-01 23:37 ` Andi Kleen
2020-06-02 8:32 ` Alexey Budankov
2020-06-02 9:12 ` Alexey Budankov
2020-06-02 13:43 ` Adrian Hunter
2020-06-05 10:51 ` Jiri Olsa
2020-06-05 13:15 ` Alexey Budankov
2020-06-05 13:57 ` Jiri Olsa
2020-06-05 14:47 ` Alexey Budankov
2020-06-05 15:23 ` Alexey Budankov
2020-06-08 8:04 ` Alexey Budankov
2020-06-08 8:45 ` Jiri Olsa
2020-06-06 8:27 ` Jiri Olsa
2020-06-01 16:53 ` [PATCH v5 00/13] perf: support enable and disable commands in stat and record modes Alexey Budankov
2020-06-01 20:21 ` Alexey Budankov
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=eabfe83d-3123-6080-a331-c195b65d1387@linux.intel.com \
--to=alexey.budankov@linux.intel.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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.