mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
perf report: Show random usage tip on the help line
Currently perf report only shows a help message "For a higher level overview, try: perf report --sort comm,dso" unconditionally (even if the sort keys were used). Add more help tips and show randomly. Load tips from ${prefix}/share/doc/perf-tip/tips.txt file. $ perf report | tail 0.10% swapper [kernel.vmlinux] [k] irq_exit 0.09% swapper [kernel.vmlinux] [k] flush_smp_call_function_queue 0.08% swapper [kernel.vmlinux] [k] native_write_msr_safe 0.03% swapper [kernel.vmlinux] [k] group_sched_in 0.01% perf [kernel.vmlinux] [k] native_write_msr_safe # # (Tip: Search options using a keyword: perf report -h <keyword>) # Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Andi Kleen <andi@firstfloor.org> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/r/1452166913-27046-1-git-send-email-namhyung@kernel.org [ Renamed it to perf_tip() and the parameter dirname to dirpath to fix the build on older distros ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
fc284be9d8
commit
14cbfbeb76
8 changed files with 58 additions and 1 deletions
|
@ -16,6 +16,8 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <unistd.h>
|
||||
#include "callchain.h"
|
||||
#include "strlist.h"
|
||||
#include <subcmd/exec-cmd.h>
|
||||
|
||||
struct callchain_param callchain_param = {
|
||||
.mode = CHAIN_GRAPH_ABS,
|
||||
|
@ -663,3 +665,28 @@ fetch_kernel_version(unsigned int *puint, char *str,
|
|||
*puint = (version << 16) + (patchlevel << 8) + sublevel;
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *perf_tip(const char *dirpath)
|
||||
{
|
||||
struct strlist *tips;
|
||||
struct str_node *node;
|
||||
char *tip = NULL;
|
||||
struct strlist_config conf = {
|
||||
.dirname = system_path(dirpath) ,
|
||||
};
|
||||
|
||||
tips = strlist__new("tips.txt", &conf);
|
||||
if (tips == NULL || strlist__nr_entries(tips) == 1) {
|
||||
tip = (char *)"Cannot find tips.txt file";
|
||||
goto out;
|
||||
}
|
||||
|
||||
node = strlist__entry(tips, random() % strlist__nr_entries(tips));
|
||||
if (asprintf(&tip, "Tip: %s", node->s) < 0)
|
||||
tip = (char *)"Tip: get more memory! ;-)";
|
||||
|
||||
out:
|
||||
strlist__delete(tips);
|
||||
|
||||
return tip;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue