lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161024170332.GE31643@krava>
Date:   Mon, 24 Oct 2016 19:03:32 +0200
From:   Jiri Olsa <jolsa@...hat.com>
To:     Namhyung Kim <namhyung@...nel.org>
Cc:     Arnaldo Carvalho de Melo <acme@...nel.org>,
        Ingo Molnar <mingo@...nel.org>,
        Peter Zijlstra <a.p.zijlstra@...llo.nl>,
        Jiri Olsa <jolsa@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>,
        David Ahern <dsahern@...il.com>,
        Andi Kleen <andi@...stfloor.org>,
        Wang Nan <wangnan0@...wei.com>,
        Josh Poimboeuf <jpoimboe@...hat.com>
Subject: Re: [RFC/PATCH 2/2] perf sched: Make common options cascading

On Mon, Oct 24, 2016 at 12:00:03PM +0900, Namhyung Kim wrote:
> The -i and -v options can be used in subcommands so enable cascading the
> sched_options.  This fixes the following inconvenience in 'perf sched':
> 
>   $ perf sched -i perf.data.sched  map
>   ... (it works well) ...
> 
>   $ perf sched map  -i perf.data.sched
>     Error: unknown switch `i'
> 
>    Usage: perf sched map [<options>]
> 
>           --color-cpus <cpus>
>                             highlight given CPUs in map
>           --color-pids <pids>
>                             highlight given pids in map
>           --compact         map output in compact mode
>           --cpus <cpus>     display given CPUs in map
> 
> With this patch, the second command line works with the perf.data.sched
> data file.
> 
> Cc: Josh Poimboeuf <jpoimboe@...hat.com>
> Signed-off-by: Namhyung Kim <namhyung@...nel.org>

good idea, I'll use it in c2c ;-)

for both:

Acked-by: Jiri Olsa <jolsa@...nel.org>

thanks,
jirka

> ---
>  tools/perf/builtin-sched.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
> index f5503ca22e1c..8ca1b5409289 100644
> --- a/tools/perf/builtin-sched.c
> +++ b/tools/perf/builtin-sched.c
> @@ -1954,6 +1954,15 @@ int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
>  		.next_shortname2      = '0',
>  		.skip_merge           = 0,
>  	};
> +	const struct option sched_options[] = {
> +	OPT_STRING('i', "input", &input_name, "file",
> +		    "input file name"),
> +	OPT_INCR('v', "verbose", &verbose,
> +		    "be more verbose (show symbol address, etc)"),
> +	OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
> +		    "dump raw trace in ASCII"),
> +	OPT_END()
> +	};
>  	const struct option latency_options[] = {
>  	OPT_STRING('s', "sort", &sched.sort_order, "key[,key2...]",
>  		   "sort by key(s): runtime, switch, avg, max"),
> @@ -1965,7 +1974,7 @@ int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
>  		    "dump raw trace in ASCII"),
>  	OPT_BOOLEAN('p', "pids", &sched.skip_merge,
>  		    "latency stats per pid instead of per comm"),
> -	OPT_END()
> +	OPT_PARENT(sched_options)
>  	};
>  	const struct option replay_options[] = {
>  	OPT_UINTEGER('r', "repeat", &sched.replay_repeat,
> @@ -1975,16 +1984,7 @@ int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
>  	OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
>  		    "dump raw trace in ASCII"),
>  	OPT_BOOLEAN('f', "force", &sched.force, "don't complain, do it"),
> -	OPT_END()
> -	};
> -	const struct option sched_options[] = {
> -	OPT_STRING('i', "input", &input_name, "file",
> -		    "input file name"),
> -	OPT_INCR('v', "verbose", &verbose,
> -		    "be more verbose (show symbol address, etc)"),
> -	OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
> -		    "dump raw trace in ASCII"),
> -	OPT_END()
> +	OPT_PARENT(sched_options)
>  	};
>  	const struct option map_options[] = {
>  	OPT_BOOLEAN(0, "compact", &sched.map.comp,
> @@ -1995,7 +1995,7 @@ int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
>                      "highlight given CPUs in map"),
>  	OPT_STRING(0, "cpus", &sched.map.cpus_str, "cpus",
>                      "display given CPUs in map"),
> -	OPT_END()
> +	OPT_PARENT(sched_options)
>  	};
>  	const char * const latency_usage[] = {
>  		"perf sched latency [<options>]",
> -- 
> 2.10.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ