Skip to content

Commit

Permalink
perf tools: Fallback to srcdir/Documentation/tips.txt
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Namhyung Kim authored and Arnaldo Carvalho de Melo committed Jan 12, 2016
1 parent 090cff3 commit 34b7b0f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
10 changes: 9 additions & 1 deletion tools/perf/builtin-report.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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:
Expand Down
11 changes: 6 additions & 5 deletions tools/perf/util/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 34b7b0f

Please sign in to comment.