From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933113AbcAMJnz (ORCPT ); Wed, 13 Jan 2016 04:43:55 -0500 Received: from terminus.zytor.com ([198.137.202.10]:48800 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932651AbcAMJnx (ORCPT ); Wed, 13 Jan 2016 04:43:53 -0500 Date: Wed, 13 Jan 2016 01:43:02 -0800 From: tip-bot for Namhyung Kim Message-ID: 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 Reply-To: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org, acme@redhat.com, namhyung@kernel.org, tglx@linutronix.de, andi@firstfloor.org, jolsa@kernel.org, dsahern@gmail.com, peterz@infradead.org, wangnan0@huawei.com In-Reply-To: <1452334589-8782-4-git-send-email-namhyung@kernel.org> References: <1452334589-8782-4-git-send-email-namhyung@kernel.org> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/urgent] perf tools: Fallback to srcdir/Documentation/ tips.txt Git-Commit-ID: 34b7b0f95d41d2351a080e774d71085171db90e6 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 34b7b0f95d41d2351a080e774d71085171db90e6 Gitweb: http://git.kernel.org/tip/34b7b0f95d41d2351a080e774d71085171db90e6 Author: Namhyung Kim AuthorDate: Sat, 9 Jan 2016 19:16:29 +0900 Committer: Arnaldo Carvalho de Melo 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 Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan 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 --- 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 +#include #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 #include "callchain.h" #include "strlist.h" -#include 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)