Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1265300
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v10 01/22] perf tools: Add 'perf-config' command |
| Date | 2015-11-09 03:40 +0100 |
| Message-ID | <qsKxd-aS-47@gated-at.bofh.it> (permalink) |
| References | <qsKxb-aS-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The perf configuration file contains many variables to change various
aspects of each of its tools, including output, disk usage, etc.
But looking through state of configuration is difficult and
there's no knowing what kind of other variables except variables
in perfconfig.example exist. So This patch adds 'perf-config'
command with '--list' option.
perf config [options]
display current perf config variables.
# perf config
or
# perf config -l | --list
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
tools/perf/Build | 1 +
tools/perf/builtin-config.c | 61 +++++++++++++++++++++++++++++++++++++++++++++
tools/perf/builtin.h | 1 +
tools/perf/command-list.txt | 1 +
tools/perf/perf.c | 1 +
5 files changed, 65 insertions(+)
create mode 100644 tools/perf/builtin-config.c
diff --git a/tools/perf/Build b/tools/perf/Build
index 7223745..2c7aaf2 100644
--- a/tools/perf/Build
+++ b/tools/perf/Build
@@ -1,5 +1,6 @@
perf-y += builtin-bench.o
perf-y += builtin-annotate.o
+perf-y += builtin-config.o
perf-y += builtin-diff.o
perf-y += builtin-evlist.o
perf-y += builtin-help.o
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
new file mode 100644
index 0000000..2d16150
--- /dev/null
+++ b/tools/perf/builtin-config.c
@@ -0,0 +1,61 @@
+/*
+ * builtin-config.c
+ *
+ * Copyright (C) 2015, Taeung Song <treeze.taeung@gmail.com>
+ *
+ */
+#include "builtin.h"
+
+#include "perf.h"
+
+#include "util/cache.h"
+#include "util/parse-options.h"
+#include "util/util.h"
+#include "util/debug.h"
+
+static const char * const config_usage[] = {
+ "perf config [options]",
+ NULL
+};
+
+enum actions {
+ ACTION_LIST = 1
+} actions;
+
+static struct option config_options[] = {
+ OPT_SET_UINT('l', "list", &actions,
+ "show current config variables", ACTION_LIST),
+ OPT_END()
+};
+
+static int show_config(const char *key, const char *value,
+ void *cb __maybe_unused)
+{
+ if (value)
+ printf("%s=%s\n", key, value);
+ else
+ printf("%s\n", key);
+
+ return 0;
+}
+
+int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
+{
+ int ret = 0;
+
+ argc = parse_options(argc, argv, config_options, config_usage,
+ PARSE_OPT_STOP_AT_NON_OPTION);
+
+ switch (actions) {
+ case ACTION_LIST:
+ default:
+ if (argc) {
+ pr_err("Error: takes no arguments\n");
+ parse_options_usage(config_usage, config_options, "l", 1);
+ return -1;
+ } else
+ ret = perf_config(show_config, NULL);
+ }
+
+ return ret;
+}
diff --git a/tools/perf/builtin.h b/tools/perf/builtin.h
index 3688ad2..3f871b5 100644
--- a/tools/perf/builtin.h
+++ b/tools/perf/builtin.h
@@ -17,6 +17,7 @@ extern int cmd_annotate(int argc, const char **argv, const char *prefix);
extern int cmd_bench(int argc, const char **argv, const char *prefix);
extern int cmd_buildid_cache(int argc, const char **argv, const char *prefix);
extern int cmd_buildid_list(int argc, const char **argv, const char *prefix);
+extern int cmd_config(int argc, const char **argv, const char *prefix);
extern int cmd_diff(int argc, const char **argv, const char *prefix);
extern int cmd_evlist(int argc, const char **argv, const char *prefix);
extern int cmd_help(int argc, const char **argv, const char *prefix);
diff --git a/tools/perf/command-list.txt b/tools/perf/command-list.txt
index 00fcaf8..acc3ea7 100644
--- a/tools/perf/command-list.txt
+++ b/tools/perf/command-list.txt
@@ -9,6 +9,7 @@ perf-buildid-cache mainporcelain common
perf-buildid-list mainporcelain common
perf-data mainporcelain common
perf-diff mainporcelain common
+perf-config mainporcelain common
perf-evlist mainporcelain common
perf-inject mainporcelain common
perf-kmem mainporcelain common
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index 3d4c7c0..4bee53c 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -39,6 +39,7 @@ struct cmd_struct {
static struct cmd_struct commands[] = {
{ "buildid-cache", cmd_buildid_cache, 0 },
{ "buildid-list", cmd_buildid_list, 0 },
+ { "config", cmd_config, 0 },
{ "diff", cmd_diff, 0 },
{ "evlist", cmd_evlist, 0 },
{ "help", cmd_help, 0 },
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v10 00/22] perf tools: Add 'perf-config' command Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 07/22] perf config: Document variables for 'help' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 04/22] perf config: Document variables for 'tui' and 'gtk' sections in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 13/22] perf config: Document 'man.viewer' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 20/22] perf config: Add 'set' feature Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 08/22] perf config: Document 'hist.percentage' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 19/22] perf config: Add 'get' functionaliy Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 03/22] perf config: Document variables for 'color' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 01/22] perf tools: Add 'perf-config' command Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
Re: [PATCH v10 01/22] perf tools: Add 'perf-config' command Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-09 15:00 +0100
Re: [PATCH v10 01/22] perf tools: Add 'perf-config' command Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-09 15:10 +0100
[PATCH v10 16/22] perf config: Add '--system' and '--user' options to select which config file is used Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 02/22] perf tools: Add perf-config document Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:40 +0100
[PATCH v10 09/22] perf config: Document 'ui.show-headers' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:50 +0100
[PATCH v10 06/22] perf config: Document variables for 'annotate' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:50 +0100
[PATCH v10 11/22] perf config: Document variables for 'report' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-09 03:50 +0100
csiph-web