From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753139AbcAEFgw (ORCPT ); Tue, 5 Jan 2016 00:36:52 -0500 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:39275 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751422AbcAEFgt (ORCPT ); Tue, 5 Jan 2016 00:36:49 -0500 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 10.177.227.17 X-Original-MAILFROM: namhyung@kernel.org From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Ingo Molnar , Peter Zijlstra , Jiri Olsa , LKML , David Ahern , Stephane Eranian , Andi Kleen , Masami Hiramatsu , Wang Nan Subject: [RFC/PATCH] perf report: Show random usage tip on the help line Date: Tue, 5 Jan 2016 14:36:46 +0900 Message-Id: <1451972206-22481-1-git-send-email-namhyung@kernel.org> X-Mailer: git-send-email 2.6.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Signed-off-by: Namhyung Kim --- tools/perf/builtin-report.c | 2 +- tools/perf/perf.c | 4 ++++ tools/perf/util/util.c | 22 ++++++++++++++++++++++ tools/perf/util/util.h | 2 ++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index f10c663af996..c9cc15431a0f 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -433,7 +433,7 @@ 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 = "For a higher level overview, try: perf report --sort comm,dso"; + const char *help = perf_report_tip(); switch (use_browser) { case 1: diff --git a/tools/perf/perf.c b/tools/perf/perf.c index cb1d2499c45c..a929618b8eb6 100644 --- a/tools/perf/perf.c +++ b/tools/perf/perf.c @@ -19,6 +19,8 @@ #include "util/debug.h" #include #include +#include +#include const char perf_usage_string[] = "perf [--version] [--help] [OPTIONS] COMMAND [ARGS]"; @@ -542,6 +544,8 @@ int main(int argc, const char **argv) if (!cmd) cmd = "perf-help"; + srandom(time(NULL)); + /* get debugfs/tracefs mount point from /proc/mounts */ tracing_path_mount(); diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c index aff0cfd83662..09c6d6cb932b 100644 --- a/tools/perf/util/util.c +++ b/tools/perf/util/util.c @@ -663,3 +663,25 @@ fetch_kernel_version(unsigned int *puint, char *str, *puint = (version << 16) + (patchlevel << 8) + sublevel; return 0; } + +const char *perf_report_tip(void) +{ + const char *tips[] = { + "For a higher level overview, try: perf report --sort comm,dso", + "Group related events with: perf record -e '{cycles,instructions}'", + "Compare performance with: perf diff [ ]", + "Boolean options have negative forms like: perf report --no-children", + "Customize output of perf script with: perf script -F event,ip,sym", + "Generate a script for your data: perf script -g ", + "Save output of perf stat using: perf stat record", + "Create archive of data to see it on other machine: perf archive", + "Search options using a keyword: perf report -h filter", + "Use parent filter to see specific call path: perf report -p ", + "listing interested events using substring match: perf list cpu", + "To see list of saved events and attributes: perf evlist -v", + "Use --symfs if your symbol files are in non-standard location", + "To see callchains in a more compact form: perf report -g folded", + }; + + return tips[random() % ARRAY_SIZE(tips)]; +} diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h index 4b519c59bdc3..8e9cec4bf376 100644 --- a/tools/perf/util/util.h +++ b/tools/perf/util/util.h @@ -342,4 +342,6 @@ int fetch_kernel_version(unsigned int *puint, #define KVER_FMT "%d.%d.%d" #define KVER_PARAM(x) KVER_VERSION(x), KVER_PATCHLEVEL(x), KVER_SUBLEVEL(x) +const char *perf_report_tip(void); + #endif /* GIT_COMPAT_UTIL_H */ -- 2.6.4