Re: [PATCH 07/13] perf kvm: split out tracepoints from record args

From: Jiri Olsa
Date: Fri May 10 2013 - 08:39:59 EST


On Wed, May 08, 2013 at 10:31:43PM -0600, David Ahern wrote:
> Needed by kvm live command. Make record_args a local while we are
> messing with the args.
>
> Signed-off-by: David Ahern <dsahern@xxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxxxxxx>
> ---
> tools/perf/builtin-kvm.c | 30 +++++++++++++++++++-----------
> 1 file changed, 19 insertions(+), 11 deletions(-)
>
> diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
> index 24b78ae..7d14a3a 100644
> --- a/tools/perf/builtin-kvm.c
> +++ b/tools/perf/builtin-kvm.c
> @@ -801,16 +801,11 @@ exit:
> return ret;
> }
>
> -static const char * const record_args[] = {
> - "record",
> - "-R",
> - "-f",
> - "-m", "1024",
> - "-c", "1",
> - "-e", "kvm:kvm_entry",
> - "-e", "kvm:kvm_exit",
> - "-e", "kvm:kvm_mmio",
> - "-e", "kvm:kvm_pio",
> +static const char * const kvm_events_tp[] = {
> + "kvm:kvm_entry",
> + "kvm:kvm_exit",
> + "kvm:kvm_mmio",
> + "kvm:kvm_pio",
> };
>
> #define STRDUP_FAIL_EXIT(s) \
> @@ -826,8 +821,16 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
> {
> unsigned int rec_argc, i, j;
> const char **rec_argv;
> + const char * const record_args[] = {
> + "record",
> + "-R",
> + "-f",
> + "-m", "1024",
> + "-c", "1",
> + };
>
> - rec_argc = ARRAY_SIZE(record_args) + argc + 2;
> + rec_argc = ARRAY_SIZE(record_args) + argc + 2 +
> + 2 * ARRAY_SIZE(kvm_events_tp);
> rec_argv = calloc(rec_argc + 1, sizeof(char *));
>
> if (rec_argv == NULL)
> @@ -836,6 +839,11 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv)
> for (i = 0; i < ARRAY_SIZE(record_args); i++)
> rec_argv[i] = STRDUP_FAIL_EXIT(record_args[i]);
>
> + for (j = 0; j < ARRAY_SIZE(kvm_events_tp); j++) {
> + rec_argv[i++] = "-e";
> + rec_argv[i++] = STRDUP_FAIL_EXIT(kvm_events_tp[j]);
> + }
> +

just curious.. I dont understand why it needs to be dynamic?

jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/