lkml.org 
[lkml]   [2009]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perfcounters/core] perf timechart: Add "perf timechart record"
    Commit-ID:  3c09eebd61eaacca866cd60b50416f18640bc731
    Gitweb: http://git.kernel.org/tip/3c09eebd61eaacca866cd60b50416f18640bc731
    Author: Arjan van de Ven <arjan@infradead.org>
    AuthorDate: Sat, 19 Sep 2009 13:34:42 +0200
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Sat, 19 Sep 2009 18:57:51 +0200

    perf timechart: Add "perf timechart record"

    Add a command line option to record a trace, similar to "perf sched record".

    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    Cc: fweisbec@gmail.com
    Cc: peterz@infradead.org
    Cc: Paul Mackerras <paulus@samba.org>
    LKML-Reference: <20090919133442.0dc2c7f5@infradead.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>


    ---
    tools/perf/builtin-timechart.c | 47 +++++++++++++++++++++++++++++++++------
    1 files changed, 39 insertions(+), 8 deletions(-)

    diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
    index 00fac1b..58d737e 100644
    --- a/tools/perf/builtin-timechart.c
    +++ b/tools/perf/builtin-timechart.c
    @@ -1086,11 +1086,42 @@ done:
    return rc;
    }

    -static const char * const report_usage[] = {
    - "perf report [<options>] <command>",
    +static const char * const timechart_usage[] = {
    + "perf timechart [<options>] {record}",
    NULL
    };

    +static const char *record_args[] = {
    + "record",
    + "-a",
    + "-R",
    + "-M",
    + "-f",
    + "-c", "1",
    + "-e", "power:power_start",
    + "-e", "power:power_end",
    + "-e", "power:power_frequency",
    + "-e", "sched:sched_wakeup",
    + "-e", "sched:sched_switch",
    +};
    +
    +static int __cmd_record(int argc, const char **argv)
    +{
    + unsigned int rec_argc, i, j;
    + const char **rec_argv;
    +
    + rec_argc = ARRAY_SIZE(record_args) + argc - 1;
    + rec_argv = calloc(rec_argc + 1, sizeof(char *));
    +
    + for (i = 0; i < ARRAY_SIZE(record_args); i++)
    + rec_argv[i] = strdup(record_args[i]);
    +
    + for (j = 1; j < (unsigned int)argc; j++, i++)
    + rec_argv[i] = argv[j];
    +
    + return cmd_record(i, rec_argv, NULL);
    +}
    +
    static const struct option options[] = {
    OPT_STRING('i', "input", &input_name, "file",
    "input file name"),
    @@ -1106,13 +1137,13 @@ int cmd_timechart(int argc, const char **argv, const char *prefix __used)

    page_size = getpagesize();

    - argc = parse_options(argc, argv, options, report_usage, 0);
    + argc = parse_options(argc, argv, options, timechart_usage,
    + PARSE_OPT_STOP_AT_NON_OPTION);

    - /*
    - * Any (unrecognized) arguments left?
    - */
    - if (argc)
    - usage_with_options(report_usage, options);
    + if (argc && !strncmp(argv[0], "rec", 3))
    + return __cmd_record(argc, argv);
    + else if (argc)
    + usage_with_options(timechart_usage, options);

    setup_pager();


    \
     
     \ /
      Last update: 2009-09-19 19:03    [W:3.498 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site