lkml.org 
[lkml]   [2020]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v5 11/13] perf record: extend -D,--delay option with -1 value
    From
    Date

    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

    \
     
     \ /
      Last update: 2020-06-01 18:03    [W:4.187 / U:0.360 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site