[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZUEgVDlBQjFQB2W/@kernel.org>
Date: Tue, 31 Oct 2023 12:42:12 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Yang Jihong <yangjihong1@...wei.com>
Cc: peterz@...radead.org, mingo@...hat.com, mark.rutland@....com,
alexander.shishkin@...ux.intel.com, jolsa@...nel.org,
namhyung@...nel.org, irogers@...gle.com, adrian.hunter@...el.com,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] perf debug: List available options when no variable is
specified
Em Tue, Oct 31, 2023 at 08:08:23AM +0000, Yang Jihong escreveu:
> Before:
> # perf --debug
> No variable specified for --debug.
> After:
> # perf --debug
> No variable specified for --debug, available options: verbose,ordered-events,stderr,data-convert,perf-event-open.
Looks useful, but the implementation can be different to reduce
maintainership costs, see below:
> +++ b/tools/perf/perf.c
> @@ -279,7 +279,9 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
> } else if (!strcmp(cmd, "--debug")) {
> if (*argc < 2) {
> - fprintf(stderr, "No variable specified for --debug.\n");
> + fprintf(stderr,
> + "No variable specified for --debug, available options: %s.\n",
> + perf_debug_options_string);
> usage(perf_usage_string);
> +++ b/tools/perf/util/debug.c
> @@ -215,6 +215,9 @@ void trace_event(union perf_event *event)
> trace_event_printer, event);
> }
>
> +const char perf_debug_options_string[] =
> + "verbose,ordered-events,stderr,data-convert,perf-event-open";
Instead of adding a new variable that has to be kept in sync with
debug_opts[], you could provide a function that iterates debug_opts,
printing its options names, then use that function on perf.c handle_options.
- Arnaldo
> static struct sublevel_option debug_opts[] = {
> { .name = "verbose", .value_ptr = &verbose },
> { .name = "ordered-events", .value_ptr = &debug_ordered_events},
Powered by blists - more mailing lists