aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/perf.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-05-20 21:01:10 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-05-20 21:01:10 -0400
commit5d06e6915b1b76653e6fe3369b0b18fdbf75f0a5 (patch)
tree6ed4257dd38a923aa027988bd7dda627ff217c65 /tools/perf/perf.c
parentef365cefbc53d8674a18520a1d4c2e5590127299 (diff)
perf tui: Allow disabling the TUI on a per command basis in ~/.perfconfig
Using the same scheme as for git's/perf's pager setup, i.e. if one doesn't want to, on a newt enabled perf binary, to disable the TUI for 'perf report', its just a matter of doing: [root@doppio linux-2.6-tip]# printf "[tui]\n\nreport = off\n" > /root/.perfconfig [root@doppio linux-2.6-tip]# cat /root/.perfconfig [tui] report = off [root@doppio linux-2.6-tip]# System wide settings are also possible, by editing /etc/perfconfig, etc, i.e. the git machinery for config files applies to perf as well, so when in doubt where to put your settings, consult the git documentation, if it fails, please let us know. Suggested-by: Ingo Molnar <mingo@elte.hu> Discussed-with: Stephane Eranian <eranian@google.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Cc: Tom Zanussi <tzanussi@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/perf.c')
-rw-r--r--tools/perf/perf.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index 08e0e5d2b50e..6e4871191138 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -15,15 +15,15 @@
15#include "util/parse-events.h" 15#include "util/parse-events.h"
16#include "util/debugfs.h" 16#include "util/debugfs.h"
17 17
18bool use_browser;
19
20const char perf_usage_string[] = 18const char perf_usage_string[] =
21 "perf [--version] [--help] COMMAND [ARGS]"; 19 "perf [--version] [--help] COMMAND [ARGS]";
22 20
23const char perf_more_info_string[] = 21const char perf_more_info_string[] =
24 "See 'perf help COMMAND' for more information on a specific command."; 22 "See 'perf help COMMAND' for more information on a specific command.";
25 23
24int use_browser = -1;
26static int use_pager = -1; 25static int use_pager = -1;
26
27struct pager_config { 27struct pager_config {
28 const char *cmd; 28 const char *cmd;
29 int val; 29 int val;
@@ -49,6 +49,24 @@ int check_pager_config(const char *cmd)
49 return c.val; 49 return c.val;
50} 50}
51 51
52static int tui_command_config(const char *var, const char *value, void *data)
53{
54 struct pager_config *c = data;
55 if (!prefixcmp(var, "tui.") && !strcmp(var + 4, c->cmd))
56 c->val = perf_config_bool(var, value);
57 return 0;
58}
59
60/* returns 0 for "no tui", 1 for "use tui", and -1 for "not specified" */
61static int check_tui_config(const char *cmd)
62{
63 struct pager_config c;
64 c.cmd = cmd;
65 c.val = -1;
66 perf_config(tui_command_config, &c);
67 return c.val;
68}
69
52static void commit_pager_choice(void) 70static void commit_pager_choice(void)
53{ 71{
54 switch (use_pager) { 72 switch (use_pager) {
@@ -255,6 +273,9 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
255 if (p->option & RUN_SETUP) 273 if (p->option & RUN_SETUP)
256 prefix = NULL; /* setup_perf_directory(); */ 274 prefix = NULL; /* setup_perf_directory(); */
257 275
276 if (use_browser == -1)
277 use_browser = check_tui_config(p->cmd);
278
258 if (use_pager == -1 && p->option & RUN_SETUP) 279 if (use_pager == -1 && p->option & RUN_SETUP)
259 use_pager = check_pager_config(p->cmd); 280 use_pager = check_pager_config(p->cmd);
260 if (use_pager == -1 && p->option & USE_PAGER) 281 if (use_pager == -1 && p->option & USE_PAGER)