linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 01/24] perf tools: Add 'perf-config' command
@ 2015-11-17 13:53 Taeung Song
  2015-11-17 13:53 ` [PATCH v11 02/24] perf tools: Add perf-config document Taeung Song
                   ` (24 more replies)
  0 siblings, 25 replies; 54+ messages in thread
From: Taeung Song @ 2015-11-17 13:53 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Ingo Molnar, Taeung Song, Namhyung Kim, Jiri Olsa

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 -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 | 66 +++++++++++++++++++++++++++++++++++++++++++++
 tools/perf/builtin.h        |  1 +
 tools/perf/command-list.txt |  1 +
 tools/perf/perf.c           |  1 +
 5 files changed, 70 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..427ea7a
--- /dev/null
+++ b/tools/perf/builtin-config.c
@@ -0,0 +1,66 @@
+/*
+ * 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:
+		if (argc) {
+			pr_err("Error: takes no arguments\n");
+			parse_options_usage(config_usage, config_options, "l", 1);
+		} else {
+			ret = perf_config(show_config, NULL);
+			if (ret < 0)
+				pr_err("Nothing configured, "
+				       "please check your ~/.perfconfig file\n");
+		}
+		break;
+	default:
+		usage_with_options(config_usage, config_options);
+	}
+
+	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


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

end of thread, other threads:[~2016-03-05  2:55 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-17 13:53 [PATCH v11 01/24] perf tools: Add 'perf-config' command Taeung Song
2015-11-17 13:53 ` [PATCH v11 02/24] perf tools: Add perf-config document Taeung Song
2015-11-17 23:13   ` Namhyung Kim
2015-11-19 19:24     ` Arnaldo Carvalho de Melo
2015-11-22 10:07       ` Taeung Song
2015-11-22 10:11       ` [PATCH v11 RESEND " Taeung Song
2015-11-23 14:17         ` Arnaldo Carvalho de Melo
2015-11-26  8:20         ` [tip:perf/core] perf config: Add initial man page tip-bot for Taeung Song
2015-11-17 13:53 ` [PATCH v11 03/24] perf config: Document variables for 'color' section in " Taeung Song
2015-11-17 23:47   ` Namhyung Kim
2015-12-01  3:59     ` Taeung Song
2015-11-17 13:53 ` [PATCH v11 04/24] perf config: Document variables for 'tui' and 'gtk' sections " Taeung Song
2015-11-18  0:01   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 05/24] perf config: Document 'buildid.dir' variable " Taeung Song
2015-11-18  0:03   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 06/24] perf config: Document variables for 'annotate' section " Taeung Song
2015-11-18  0:24   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 07/24] perf config: Document variables for 'help' " Taeung Song
2015-11-18  0:45   ` Namhyung Kim
2015-12-01 16:17     ` Taeung Song
2015-11-17 13:53 ` [PATCH v11 08/24] perf config: Document 'hist.percentage' variable " Taeung Song
2015-11-18  0:49   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 09/24] perf config: Document 'ui.show-headers' " Taeung Song
2015-11-18  0:59   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 10/24] perf config: Document variables for 'call-graph' section " Taeung Song
2015-11-18  2:51   ` Namhyung Kim
2015-11-30  1:42     ` Taeung Song
2015-11-30  5:03       ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 11/24] perf config: Document variables for 'report' " Taeung Song
2015-11-18  3:01   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 12/24] perf config: Document 'top.chidren' variable " Taeung Song
2015-11-18  3:04   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 13/24] perf config: Document 'man.viewer' " Taeung Song
2015-11-18  4:58   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 14/24] perf config: Document 'pager.<subcommand>' variables " Taeung Song
2015-11-18  5:05   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 15/24] perf config: Document 'kmem.default' variable " Taeung Song
2015-11-18  5:08   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 16/24] perf config: Add '--system' and '--user' options to select which config file is used Taeung Song
2015-11-18  5:11   ` Namhyung Kim
2015-11-17 13:53 ` [PATCH v11 17/24] perf config: Collect configs to handle config variables Taeung Song
2015-11-18  5:15   ` Namhyung Kim
2016-03-04 12:45     ` Taeung Song
2016-03-04 13:58       ` Namhyung Kim
2016-03-05  2:55         ` Taeung Song
2015-11-17 13:53 ` [PATCH v11 18/24] perf config: Add 'list-all' option to perf-config Taeung Song
2015-11-17 13:53 ` [PATCH v11 19/24] perf config: Add a option 'skel' " Taeung Song
2015-11-17 13:53 ` [PATCH v11 20/24] perf config: Add --verbose option for showing config description Taeung Song
2015-11-17 13:53 ` [PATCH v11 21/24] perf config: Add 'get' functionality Taeung Song
2015-11-17 13:53 ` [PATCH v11 22/24] perf config: Add 'set' feature Taeung Song
2015-11-17 13:53 ` [PATCH v11 23/24] perf config: normalize a value depending on default type of it Taeung Song
2015-11-17 13:53 ` [PATCH v11 24/24] perf config: Add a option 'remove' to perf-config Taeung Song
2015-11-17 22:36 ` [PATCH v11 01/24] perf tools: Add 'perf-config' command Namhyung Kim
2015-11-26  8:20 ` [tip:perf/core] perf tools: Add 'perf config' command tip-bot for Taeung Song

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).