|
@@ -50,6 +50,7 @@ struct perf_report {
|
|
const char *pretty_printing_style;
|
|
const char *pretty_printing_style;
|
|
symbol_filter_t annotate_init;
|
|
symbol_filter_t annotate_init;
|
|
const char *cpu_list;
|
|
const char *cpu_list;
|
|
|
|
+ const char *symbol_filter_str;
|
|
DECLARE_BITMAP(cpu_bitmap, MAX_NR_CPUS);
|
|
DECLARE_BITMAP(cpu_bitmap, MAX_NR_CPUS);
|
|
};
|
|
};
|
|
|
|
|
|
@@ -400,6 +401,9 @@ static int __cmd_report(struct perf_report *rep)
|
|
list_for_each_entry(pos, &session->evlist->entries, node) {
|
|
list_for_each_entry(pos, &session->evlist->entries, node) {
|
|
struct hists *hists = &pos->hists;
|
|
struct hists *hists = &pos->hists;
|
|
|
|
|
|
|
|
+ if (pos->idx == 0)
|
|
|
|
+ hists->symbol_filter_str = rep->symbol_filter_str;
|
|
|
|
+
|
|
hists__collapse_resort(hists);
|
|
hists__collapse_resort(hists);
|
|
hists__output_resort(hists);
|
|
hists__output_resort(hists);
|
|
nr_samples += hists->stats.nr_events[PERF_RECORD_SAMPLE];
|
|
nr_samples += hists->stats.nr_events[PERF_RECORD_SAMPLE];
|
|
@@ -591,6 +595,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __used)
|
|
"only consider symbols in these comms"),
|
|
"only consider symbols in these comms"),
|
|
OPT_STRING('S', "symbols", &symbol_conf.sym_list_str, "symbol[,symbol...]",
|
|
OPT_STRING('S', "symbols", &symbol_conf.sym_list_str, "symbol[,symbol...]",
|
|
"only consider these symbols"),
|
|
"only consider these symbols"),
|
|
|
|
+ OPT_STRING(0, "symbol-filter", &report.symbol_filter_str, "filter",
|
|
|
|
+ "only show symbols that (partially) match with this filter"),
|
|
OPT_STRING('w', "column-widths", &symbol_conf.col_width_list_str,
|
|
OPT_STRING('w', "column-widths", &symbol_conf.col_width_list_str,
|
|
"width[,width...]",
|
|
"width[,width...]",
|
|
"don't try to adjust column width, use these fixed values"),
|
|
"don't try to adjust column width, use these fixed values"),
|