All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Namhyung Kim <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, andi@firstfloor.org, jolsa@kernel.org,
	hpa@zytor.com, linux-kernel@vger.kernel.org, namhyung@kernel.org,
	acme@redhat.com, mingo@kernel.org, wangnan0@huawei.com,
	dsahern@gmail.com, peterz@infradead.org
Subject: [tip:perf/urgent] perf tools: Fallback to srcdir/Documentation/ tips.txt
Date: Wed, 13 Jan 2016 01:43:02 -0800	[thread overview]
Message-ID: <tip-34b7b0f95d41d2351a080e774d71085171db90e6@git.kernel.org> (raw)
In-Reply-To: <1452334589-8782-4-git-send-email-namhyung@kernel.org>

Commit-ID:  34b7b0f95d41d2351a080e774d71085171db90e6
Gitweb:     http://git.kernel.org/tip/34b7b0f95d41d2351a080e774d71085171db90e6
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Sat, 9 Jan 2016 19:16:29 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 12 Jan 2016 12:42:08 -0300

perf tools: Fallback to srcdir/Documentation/tips.txt

Some people don't install perf, but just use compiled version in the
source.  Fallback to lookup the source directory for those poor guys. :)

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1452334589-8782-4-git-send-email-namhyung@kernel.org
[ Make perf_tip() return NULL for ENOENT, making the fallback to really take place ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-report.c | 10 +++++++++-
 tools/perf/util/util.c      | 11 ++++++-----
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index d5a42ee..2bf537f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -28,6 +28,7 @@
 #include "util/tool.h"
 
 #include <subcmd/parse-options.h>
+#include <subcmd/exec-cmd.h>
 #include "util/parse-events.h"
 
 #include "util/thread.h"
@@ -433,7 +434,14 @@ static int report__browse_hists(struct report *rep)
 	int ret;
 	struct perf_session *session = rep->session;
 	struct perf_evlist *evlist = session->evlist;
-	const char *help = perf_tip(TIPDIR);
+	const char *help = perf_tip(system_path(TIPDIR));
+
+	if (help == NULL) {
+		/* fallback for people who don't install perf ;-) */
+		help = perf_tip(DOCDIR);
+		if (help == NULL)
+			help = "Cannot load tips.txt file, please install perf!";
+	}
 
 	switch (use_browser) {
 	case 1:
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index 88b8f8d..ead9509 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -17,7 +17,6 @@
 #include <unistd.h>
 #include "callchain.h"
 #include "strlist.h"
-#include <subcmd/exec-cmd.h>
 
 struct callchain_param	callchain_param = {
 	.mode	= CHAIN_GRAPH_ABS,
@@ -672,14 +671,16 @@ const char *perf_tip(const char *dirpath)
 	struct str_node *node;
 	char *tip = NULL;
 	struct strlist_config conf = {
-		.dirname = system_path(dirpath) ,
+		.dirname = dirpath,
+		.file_only = true,
 	};
 
 	tips = strlist__new("tips.txt", &conf);
-	if (tips == NULL || strlist__nr_entries(tips) == 1) {
-		tip = (char *)"Cannot find tips.txt file";
+	if (tips == NULL)
+		return errno == ENOENT ? NULL : "Tip: get more memory! ;-p";
+
+	if (strlist__nr_entries(tips) == 0)
 		goto out;
-	}
 
 	node = strlist__entry(tips, random() % strlist__nr_entries(tips));
 	if (asprintf(&tip, "Tip: %s", node->s) < 0)

  parent reply	other threads:[~2016-01-13  9:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-09 10:16 [PATCH 1/4] perf tools: Add more usage tips Namhyung Kim
2016-01-09 10:16 ` [PATCH 2/4] perf tools: Add file_only config option to strlist Namhyung Kim
2016-01-13  9:42   ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2016-01-09 10:16 ` [PATCH 3/4] perf tools: Set and pass DOCDIR to builtin-report.c Namhyung Kim
2016-01-13  9:42   ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2016-01-09 10:16 ` [PATCH 4/4] perf tools: Fallback to srcdir/Documentation/tips.txt Namhyung Kim
2016-01-11  9:18   ` Jiri Olsa
2016-01-12 15:34     ` Arnaldo Carvalho de Melo
2016-01-12 15:39       ` Arnaldo Carvalho de Melo
2016-01-12 15:22   ` Arnaldo Carvalho de Melo
2016-01-13  9:43   ` tip-bot for Namhyung Kim [this message]
2016-01-10  3:38 ` [PATCH 1/4] perf tools: Add more usage tips Andi Kleen
2016-01-11 10:35   ` [PATCH v2 " Namhyung Kim
2016-01-11 10:53     ` [PATCH 5/4] perf ui/tui: Print helpline message as is Namhyung Kim
2016-01-12 15:23       ` Arnaldo Carvalho de Melo
2016-01-13  9:42       ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2016-01-13  9:41     ` [tip:perf/urgent] perf tools: Add more usage tips tip-bot for Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-34b7b0f95d41d2351a080e774d71085171db90e6@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=acme@redhat.com \
    --cc=andi@firstfloor.org \
    --cc=dsahern@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=wangnan0@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.