lkml.org 
[lkml]   [2013]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/3] perf record: support duration option to run during specified time
    Joonsoo Kim [iamjoonsoo.kim@lge.com] wrote:
    | Currently, there is no method to quit at specified time later.
    | We are used to using 'sleep N' as command argument if we need it,
    | but explicitly supporting this feature maybe makes sense.
    |
    | Cc: Namhyung Kim <namhyung@kernel.org>
    | Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    |
    | diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
    | index cdf58ec..19c65b5 100644
    | --- a/tools/perf/builtin-record.c
    | +++ b/tools/perf/builtin-record.c
    | @@ -29,6 +29,7 @@
    | #include <sched.h>
    | #include <sys/mman.h>
    |
    | +static unsigned int duration;
    | #ifndef HAVE_ON_EXIT
    | #ifndef ATEXIT_MAX
    | #define ATEXIT_MAX 32
    | @@ -194,7 +195,7 @@ static void perf_record__sig_exit(int exit_status __maybe_unused, void *arg)
    | psignal(WTERMSIG(status), rec->progname);
    | }
    |
    | - if (signr == -1 || signr == SIGUSR1)
    | + if (signr == -1 || signr == SIGUSR1 || signr == SIGALRM)
    | return;
    |
    | signal(signr, SIG_DFL);
    | @@ -404,6 +405,7 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
    | signal(SIGCHLD, sig_handler);
    | signal(SIGINT, sig_handler);
    | signal(SIGUSR1, sig_handler);
    | + signal(SIGALRM, sig_handler);
    |
    | if (!output_name) {
    | if (!fstat(STDOUT_FILENO, &st) && S_ISFIFO(st.st_mode))
    | @@ -471,6 +473,7 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
    | goto out_delete_session;
    | }
    |
    | + alarm(duration);
    | if (forks) {
    | err = perf_evlist__prepare_workload(evsel_list, &opts->target,
    | argv, opts->pipe_output,
    | @@ -955,6 +958,7 @@ const struct option record_options[] = {
    | parse_branch_stack),
    | OPT_BOOLEAN('W', "weight", &record.opts.sample_weight,
    | "sample by weight (on special events only)"),
    | + OPT_UINTEGER(0, "duration", &duration, "run during specified seconds"),

    nit: A slight ambiguity in the help text. Would you mind changing it to:

    "run for specified duration (seconds)" ?

    Sukadev



    \
     
     \ /
      Last update: 2013-06-29 02:41    [W:5.213 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site