mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 10:45:49 +00:00
perf tools: Add mode argument to sort_help()
Some sort keys are meaningful only in a specific mode - like branch stack and memory (data-src). Add the mode to skip unnecessary ones. This will be used for 'perf mem report' later. While at it, change the prefix for the -F/--fields option to remove the duplicate part. Before: $ perf report -F Error: switch `F' requires a value Usage: perf report [<options>] -F, --fields <key[,keys...]> output field(s): overhead period sample overhead overhead_sys overhead_us overhead_guest_sys overhead_guest_us overhead_children sample period weight1 weight2 weight3 ins_lat retire_lat ... After: $ perf report -F Error: switch `F' requires a value Usage: perf report [<options>] -F, --fields <key[,keys...]> output field(s): overhead overhead_sys overhead_us overhead_guest_sys overhead_guest_us overhead_children sample period weight1 weight2 weight3 ins_lat retire_lat ... Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: https://lore.kernel.org/r/20240731235505.710436-5-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
35b38a71c9
commit
871893d748
@ -1301,8 +1301,8 @@ int cmd_report(int argc, const char **argv)
|
||||
.socket_filter = -1,
|
||||
.skip_empty = true,
|
||||
};
|
||||
char *sort_order_help = sort_help("sort by key(s):");
|
||||
char *field_order_help = sort_help("output field(s): overhead period sample ");
|
||||
char *sort_order_help = sort_help("sort by key(s):", SORT_MODE__NORMAL);
|
||||
char *field_order_help = sort_help("output field(s):", SORT_MODE__NORMAL);
|
||||
const char *disassembler_style = NULL, *objdump_path = NULL, *addr2line_path = NULL;
|
||||
const struct option options[] = {
|
||||
OPT_STRING('i', "input", &input_name, "file",
|
||||
|
@ -3960,7 +3960,7 @@ static void add_hpp_sort_string(struct strbuf *sb, struct hpp_dimension *s, int
|
||||
add_key(sb, s[i].name, llen);
|
||||
}
|
||||
|
||||
char *sort_help(const char *prefix)
|
||||
char *sort_help(const char *prefix, enum sort_mode mode)
|
||||
{
|
||||
struct strbuf sb;
|
||||
char *s;
|
||||
@ -3972,10 +3972,12 @@ char *sort_help(const char *prefix)
|
||||
ARRAY_SIZE(hpp_sort_dimensions), &len);
|
||||
add_sort_string(&sb, common_sort_dimensions,
|
||||
ARRAY_SIZE(common_sort_dimensions), &len);
|
||||
add_sort_string(&sb, bstack_sort_dimensions,
|
||||
ARRAY_SIZE(bstack_sort_dimensions), &len);
|
||||
add_sort_string(&sb, memory_sort_dimensions,
|
||||
ARRAY_SIZE(memory_sort_dimensions), &len);
|
||||
if (mode == SORT_MODE__NORMAL || mode == SORT_MODE__BRANCH)
|
||||
add_sort_string(&sb, bstack_sort_dimensions,
|
||||
ARRAY_SIZE(bstack_sort_dimensions), &len);
|
||||
if (mode == SORT_MODE__NORMAL || mode == SORT_MODE__MEMORY)
|
||||
add_sort_string(&sb, memory_sort_dimensions,
|
||||
ARRAY_SIZE(memory_sort_dimensions), &len);
|
||||
s = strbuf_detach(&sb, NULL);
|
||||
strbuf_release(&sb);
|
||||
return s;
|
||||
|
@ -130,7 +130,7 @@ void reset_output_field(void);
|
||||
void sort__setup_elide(FILE *fp);
|
||||
void perf_hpp__set_elide(int idx, bool elide);
|
||||
|
||||
char *sort_help(const char *prefix);
|
||||
char *sort_help(const char *prefix, enum sort_mode mode);
|
||||
|
||||
int report_parse_ignore_callees_opt(const struct option *opt, const char *arg, int unset);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user