linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] perf tools: Add PARSE_OPT_DISABLED flag
@ 2014-10-07  8:10 Namhyung Kim
  2014-10-07  8:10 ` [PATCH 2/3] perf tools: Export usage string and option table of perf record Namhyung Kim
  2014-10-07  8:10 ` [PATCH 3/3] perf kvm: Print kvm specific --help output Namhyung Kim
  0 siblings, 2 replies; 5+ messages in thread
From: Namhyung Kim @ 2014-10-07  8:10 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim,
	Namhyung Kim, LKML, Jiri Olsa, David Ahern, Alexander Yarygin

In some cases, we need to reuse exising options with some of them
disabled.  To do that, add PARSE_OPT_DISABLED flag and
set_option_flag() function.

Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/parse-options.c | 17 +++++++++++++++++
 tools/perf/util/parse-options.h |  2 ++
 2 files changed, 19 insertions(+)

diff --git a/tools/perf/util/parse-options.c b/tools/perf/util/parse-options.c
index bf48092983c6..b6016101b40b 100644
--- a/tools/perf/util/parse-options.c
+++ b/tools/perf/util/parse-options.c
@@ -42,6 +42,8 @@ static int get_value(struct parse_opt_ctx_t *p,
 		return opterror(opt, "takes no value", flags);
 	if (unset && (opt->flags & PARSE_OPT_NONEG))
 		return opterror(opt, "isn't available", flags);
+	if (opt->flags & PARSE_OPT_DISABLED)
+		return opterror(opt, "is not usable", flags);
 
 	if (!(flags & OPT_SHORT) && p->opt) {
 		switch (opt->type) {
@@ -509,6 +511,8 @@ static void print_option_help(const struct option *opts, int full)
 	}
 	if (!full && (opts->flags & PARSE_OPT_HIDDEN))
 		return;
+	if (opts->flags & PARSE_OPT_DISABLED)
+		return;
 
 	pos = fprintf(stderr, "    ");
 	if (opts->short_name)
@@ -679,3 +683,16 @@ int parse_opt_verbosity_cb(const struct option *opt,
 	}
 	return 0;
 }
+
+void set_option_flag(struct option *opts, int shortopt, const char *longopt,
+		     int flag)
+{
+	for (; opts->type != OPTION_END; opts++) {
+		if ((shortopt && opts->short_name == shortopt) ||
+		    (opts->long_name && longopt &&
+		     !strcmp(opts->long_name, longopt))) {
+			opts->flags |= flag;
+			break;
+		}
+	}
+}
diff --git a/tools/perf/util/parse-options.h b/tools/perf/util/parse-options.h
index b59ba858e73d..b7c80dbc7627 100644
--- a/tools/perf/util/parse-options.h
+++ b/tools/perf/util/parse-options.h
@@ -38,6 +38,7 @@ enum parse_opt_option_flags {
 	PARSE_OPT_NONEG   = 4,
 	PARSE_OPT_HIDDEN  = 8,
 	PARSE_OPT_LASTARG_DEFAULT = 16,
+	PARSE_OPT_DISABLED = 32,
 };
 
 struct option;
@@ -211,4 +212,5 @@ extern int parse_opt_verbosity_cb(const struct option *, const char *, int);
 
 extern const char *parse_options_fix_filename(const char *prefix, const char *file);
 
+void set_option_flag(struct option *opts, int sopt, const char *lopt, int flag);
 #endif /* __PERF_PARSE_OPTIONS_H */
-- 
2.1.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] perf tools: Export usage string and option table of perf record
  2014-10-07  8:10 [PATCH 1/3] perf tools: Add PARSE_OPT_DISABLED flag Namhyung Kim
@ 2014-10-07  8:10 ` Namhyung Kim
  2014-10-07  8:10 ` [PATCH 3/3] perf kvm: Print kvm specific --help output Namhyung Kim
  1 sibling, 0 replies; 5+ messages in thread
From: Namhyung Kim @ 2014-10-07  8:10 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim,
	Namhyung Kim, LKML, Jiri Olsa, David Ahern, Alexander Yarygin

Those are shared with other builtin commands like kvm, script.  So
make it accessable from them.  This is a preparation of later change
that limiting possible options.

Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/builtin-record.c    | 7 +++++--
 tools/perf/builtin-script.c    | 1 -
 tools/perf/builtin-timechart.c | 7 ++++---
 tools/perf/perf.h              | 3 +++
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 44c6f3d55ce7..4d1f224c90ab 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -678,11 +678,12 @@ static int perf_record_config(const char *var, const char *value, void *cb)
 	return perf_default_config(var, value, cb);
 }
 
-static const char * const record_usage[] = {
+static const char * const __record_usage[] = {
 	"perf record [<options>] [<command>]",
 	"perf record [<options>] -- <command> [<options>]",
 	NULL
 };
+const char * const *record_usage = __record_usage;
 
 /*
  * XXX Ideally would be local to cmd_record() and passed to a record__new
@@ -723,7 +724,7 @@ const char record_callchain_help[] = CALLCHAIN_HELP "fp";
  * perf_evlist__prepare_workload, etc instead of fork+exec'in 'perf record',
  * using pipes, etc.
  */
-const struct option record_options[] = {
+struct option __record_options[] = {
 	OPT_CALLBACK('e', "event", &record.evlist, "event",
 		     "event selector. use 'perf list' to list available events",
 		     parse_events_option),
@@ -800,6 +801,8 @@ const struct option record_options[] = {
 	OPT_END()
 };
 
+struct option *record_options = __record_options;
+
 int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
 {
 	int err = -ENOMEM;
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index b9b9e58a6c39..c9cf613efa79 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -23,7 +23,6 @@ static char const		*generate_script_lang;
 static bool			debug_mode;
 static u64			last_timestamp;
 static u64			nr_unordered;
-extern const struct option	record_options[];
 static bool			no_callchain;
 static bool			latency_format;
 static bool			system_wide;
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 35b425b6293f..9a68fda17cb5 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -1963,7 +1963,7 @@ int cmd_timechart(int argc, const char **argv,
 		NULL
 	};
 
-	const struct option record_options[] = {
+	const struct option timechart_record_options[] = {
 	OPT_BOOLEAN('P', "power-only", &tchart.power_only, "output power data only"),
 	OPT_BOOLEAN('T', "tasks-only", &tchart.tasks_only,
 		    "output processes data only"),
@@ -1972,7 +1972,7 @@ int cmd_timechart(int argc, const char **argv,
 	OPT_BOOLEAN('g', "callchain", &tchart.with_backtrace, "record callchain"),
 	OPT_END()
 	};
-	const char * const record_usage[] = {
+	const char * const timechart_record_usage[] = {
 		"perf timechart record [<options>]",
 		NULL
 	};
@@ -1985,7 +1985,8 @@ int cmd_timechart(int argc, const char **argv,
 	}
 
 	if (argc && !strncmp(argv[0], "rec", 3)) {
-		argc = parse_options(argc, argv, record_options, record_usage,
+		argc = parse_options(argc, argv, timechart_record_options,
+				     timechart_record_usage,
 				     PARSE_OPT_STOP_AT_NON_OPTION);
 
 		if (tchart.power_only && tchart.tasks_only) {
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 220d44e44c1b..511c2831aa81 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -62,4 +62,7 @@ struct record_opts {
 	unsigned     initial_delay;
 };
 
+struct option;
+extern const char * const *record_usage;
+extern struct option *record_options;
 #endif
-- 
2.1.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] perf kvm: Print kvm specific --help output
  2014-10-07  8:10 [PATCH 1/3] perf tools: Add PARSE_OPT_DISABLED flag Namhyung Kim
  2014-10-07  8:10 ` [PATCH 2/3] perf tools: Export usage string and option table of perf record Namhyung Kim
@ 2014-10-07  8:10 ` Namhyung Kim
  2014-10-07 11:16   ` Alexander Yarygin
  1 sibling, 1 reply; 5+ messages in thread
From: Namhyung Kim @ 2014-10-07  8:10 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim,
	Namhyung Kim, LKML, Jiri Olsa, David Ahern, Alexander Yarygin

The 'perf kvm stat record' tool is an alias of 'perf record' with
predefined kvm related options. All options that passed to 'perf kvm
stat record' are processed by the 'perf record' tool. So, 'perf kvm
stat record --help' prints help of usage for the 'perf record'
command. There are a few options useful for 'perf kvm stat record',
the rest either break kvm related output or don't change it.

Let's print safe for 'perf kvm stat record' options in addition to
general 'perf record' --help output.

With this patch, new output looks like below:

  $ perf kvm stat record -h

   usage: perf kvm stat record [<options>]

      -p, --pid <pid>       record events on existing process id
      -t, --tid <tid>       record events on existing thread id
      -r, --realtime <n>    collect data with this RT SCHED_FIFO priority
          --no-buffering    collect data without buffering
      -a, --all-cpus        system-wide collection from all CPUs
      -C, --cpu <cpu>       list of cpus to monitor
      -c, --count <n>       event period to sample
      -o, --output <file>   output file name
      -i, --no-inherit      child tasks do not inherit counters
      -m, --mmap-pages <pages>
                            number of mmap data pages
      -v, --verbose         be more verbose (show counter open errors, etc)
      -q, --quiet           don't print any message
      -s, --stat            per thread counts
      -D, --delay <n>       ms to wait before starting measurement after program start
      -u, --uid <user>      user to profile
          --per-thread      use per-thread mmaps

  $ perf kvm stat record -n sleep 1
    Error: switch `n' is not usable

   usage: perf kvm stat record [<options>]

Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/builtin-kvm.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index 460a4ce9c044..c029d0fdc93e 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -1132,6 +1132,10 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
 		"-m", "1024",
 		"-c", "1",
 	};
+	const char * const kvm_stat_record_usage[] = {
+		"perf kvm stat record [<options>]",
+		NULL
+	};
 	const char * const *events_tp;
 	events_tp_size = 0;
 
@@ -1159,6 +1163,27 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
 	for (j = 1; j < (unsigned int)argc; j++, i++)
 		rec_argv[i] = argv[j];
 
+	set_option_flag(record_options, 'e', "event", PARSE_OPT_HIDDEN);
+	set_option_flag(record_options, 0, "filter", PARSE_OPT_HIDDEN);
+	set_option_flag(record_options, 'R', "raw-samples", PARSE_OPT_HIDDEN);
+
+	set_option_flag(record_options, 'F', "freq", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 0, "group", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'g', NULL, PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 0, "call-graph", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'd', "data", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'T', "timestamp", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'P', "period", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'n', "no-samples", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'N', "no-buildid-cache", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'B', "no-buildid", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'G', "cgroup", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'b', "branch-any", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'j', "branch-filter", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 'W', "weight", PARSE_OPT_DISABLED);
+	set_option_flag(record_options, 0, "transaction", PARSE_OPT_DISABLED);
+
+	record_usage = kvm_stat_record_usage;
 	return cmd_record(i, rec_argv, NULL);
 }
 
-- 
2.1.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] perf kvm: Print kvm specific --help output
  2014-10-07  8:10 ` [PATCH 3/3] perf kvm: Print kvm specific --help output Namhyung Kim
@ 2014-10-07 11:16   ` Alexander Yarygin
  2014-10-15 18:50     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 5+ messages in thread
From: Alexander Yarygin @ 2014-10-07 11:16 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
	Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa, David Ahern


Hello,

Namhyung Kim <namhyung@kernel.org> writes:

> The 'perf kvm stat record' tool is an alias of 'perf record' with
> predefined kvm related options. All options that passed to 'perf kvm
> stat record' are processed by the 'perf record' tool. So, 'perf kvm
> stat record --help' prints help of usage for the 'perf record'
> command. There are a few options useful for 'perf kvm stat record',
> the rest either break kvm related output or don't change it.
>
> Let's print safe for 'perf kvm stat record' options in addition to
> general 'perf record' --help output.

We probably want s/in addition to general 'perf record' --help output//

>
> With this patch, new output looks like below:
>
>   $ perf kvm stat record -h
>
>    usage: perf kvm stat record [<options>]
>
>       -p, --pid <pid>       record events on existing process id
>       -t, --tid <tid>       record events on existing thread id
>       -r, --realtime <n>    collect data with this RT SCHED_FIFO priority
>           --no-buffering    collect data without buffering
>       -a, --all-cpus        system-wide collection from all CPUs
>       -C, --cpu <cpu>       list of cpus to monitor
>       -c, --count <n>       event period to sample
>       -o, --output <file>   output file name
>       -i, --no-inherit      child tasks do not inherit counters
>       -m, --mmap-pages <pages>
>                             number of mmap data pages
>       -v, --verbose         be more verbose (show counter open errors, etc)
>       -q, --quiet           don't print any message
>       -s, --stat            per thread counts
>       -D, --delay <n>       ms to wait before starting measurement after program start
>       -u, --uid <user>      user to profile
>           --per-thread      use per-thread mmaps
>
>   $ perf kvm stat record -n sleep 1
>     Error: switch `n' is not usable
>
>    usage: perf kvm stat record [<options>]
>
> Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/builtin-kvm.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
> index 460a4ce9c044..c029d0fdc93e 100644
> --- a/tools/perf/builtin-kvm.c
> +++ b/tools/perf/builtin-kvm.c
> @@ -1132,6 +1132,10 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
>  		"-m", "1024",
>  		"-c", "1",
>  	};
> +	const char * const kvm_stat_record_usage[] = {
> +		"perf kvm stat record [<options>]",
> +		NULL
> +	};
>  	const char * const *events_tp;
>  	events_tp_size = 0;
>
> @@ -1159,6 +1163,27 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
>  	for (j = 1; j < (unsigned int)argc; j++, i++)
>  		rec_argv[i] = argv[j];
>
> +	set_option_flag(record_options, 'e', "event", PARSE_OPT_HIDDEN);
> +	set_option_flag(record_options, 0, "filter", PARSE_OPT_HIDDEN);
> +	set_option_flag(record_options, 'R', "raw-samples", PARSE_OPT_HIDDEN);
> +
> +	set_option_flag(record_options, 'F', "freq", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 0, "group", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'g', NULL, PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 0, "call-graph", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'd', "data", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'T', "timestamp", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'P', "period", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'n', "no-samples", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'N', "no-buildid-cache", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'B', "no-buildid", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'G', "cgroup", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'b', "branch-any", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'j', "branch-filter", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 'W', "weight", PARSE_OPT_DISABLED);
> +	set_option_flag(record_options, 0, "transaction", PARSE_OPT_DISABLED);
> +
> +	record_usage = kvm_stat_record_usage;
>  	return cmd_record(i, rec_argv, NULL);
>  }


Otherwise it works for me.
Thanks!


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] perf kvm: Print kvm specific --help output
  2014-10-07 11:16   ` Alexander Yarygin
@ 2014-10-15 18:50     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-10-15 18:50 UTC (permalink / raw)
  To: Alexander Yarygin
  Cc: Namhyung Kim, Peter Zijlstra, Ingo Molnar, Paul Mackerras,
	Namhyung Kim, LKML, Jiri Olsa, David Ahern

Em Tue, Oct 07, 2014 at 03:16:19PM +0400, Alexander Yarygin escreveu:
> 
> Hello,
> 
> Namhyung Kim <namhyung@kernel.org> writes:
> 
> > The 'perf kvm stat record' tool is an alias of 'perf record' with
> > predefined kvm related options. All options that passed to 'perf kvm
> > stat record' are processed by the 'perf record' tool. So, 'perf kvm
> > stat record --help' prints help of usage for the 'perf record'
> > command. There are a few options useful for 'perf kvm stat record',
> > the rest either break kvm related output or don't change it.
> >
> > Let's print safe for 'perf kvm stat record' options in addition to
> > general 'perf record' --help output.
> 
> We probably want s/in addition to general 'perf record' --help output//

So is this settled? Can I apply it with an Acked-by: Alexander?

- Arnaldo
 
> > With this patch, new output looks like below:
> >
> >   $ perf kvm stat record -h
> >
> >    usage: perf kvm stat record [<options>]
> >
> >       -p, --pid <pid>       record events on existing process id
> >       -t, --tid <tid>       record events on existing thread id
> >       -r, --realtime <n>    collect data with this RT SCHED_FIFO priority
> >           --no-buffering    collect data without buffering
> >       -a, --all-cpus        system-wide collection from all CPUs
> >       -C, --cpu <cpu>       list of cpus to monitor
> >       -c, --count <n>       event period to sample
> >       -o, --output <file>   output file name
> >       -i, --no-inherit      child tasks do not inherit counters
> >       -m, --mmap-pages <pages>
> >                             number of mmap data pages
> >       -v, --verbose         be more verbose (show counter open errors, etc)
> >       -q, --quiet           don't print any message
> >       -s, --stat            per thread counts
> >       -D, --delay <n>       ms to wait before starting measurement after program start
> >       -u, --uid <user>      user to profile
> >           --per-thread      use per-thread mmaps
> >
> >   $ perf kvm stat record -n sleep 1
> >     Error: switch `n' is not usable
> >
> >    usage: perf kvm stat record [<options>]
> >
> > Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > ---
> >  tools/perf/builtin-kvm.c | 25 +++++++++++++++++++++++++
> >  1 file changed, 25 insertions(+)
> >
> > diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
> > index 460a4ce9c044..c029d0fdc93e 100644
> > --- a/tools/perf/builtin-kvm.c
> > +++ b/tools/perf/builtin-kvm.c
> > @@ -1132,6 +1132,10 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
> >  		"-m", "1024",
> >  		"-c", "1",
> >  	};
> > +	const char * const kvm_stat_record_usage[] = {
> > +		"perf kvm stat record [<options>]",
> > +		NULL
> > +	};
> >  	const char * const *events_tp;
> >  	events_tp_size = 0;
> >
> > @@ -1159,6 +1163,27 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
> >  	for (j = 1; j < (unsigned int)argc; j++, i++)
> >  		rec_argv[i] = argv[j];
> >
> > +	set_option_flag(record_options, 'e', "event", PARSE_OPT_HIDDEN);
> > +	set_option_flag(record_options, 0, "filter", PARSE_OPT_HIDDEN);
> > +	set_option_flag(record_options, 'R', "raw-samples", PARSE_OPT_HIDDEN);
> > +
> > +	set_option_flag(record_options, 'F', "freq", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 0, "group", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'g', NULL, PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 0, "call-graph", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'd', "data", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'T', "timestamp", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'P', "period", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'n', "no-samples", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'N', "no-buildid-cache", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'B', "no-buildid", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'G', "cgroup", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'b', "branch-any", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'j', "branch-filter", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 'W', "weight", PARSE_OPT_DISABLED);
> > +	set_option_flag(record_options, 0, "transaction", PARSE_OPT_DISABLED);
> > +
> > +	record_usage = kvm_stat_record_usage;
> >  	return cmd_record(i, rec_argv, NULL);
> >  }
> 
> 
> Otherwise it works for me.
> Thanks!

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-10-15 18:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-07  8:10 [PATCH 1/3] perf tools: Add PARSE_OPT_DISABLED flag Namhyung Kim
2014-10-07  8:10 ` [PATCH 2/3] perf tools: Export usage string and option table of perf record Namhyung Kim
2014-10-07  8:10 ` [PATCH 3/3] perf kvm: Print kvm specific --help output Namhyung Kim
2014-10-07 11:16   ` Alexander Yarygin
2014-10-15 18:50     ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).