Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux] / tools / perf / builtin-report.c
index c04dc7b..257c9c1 100644 (file)
@@ -201,14 +201,13 @@ static void setup_forced_leader(struct report *report,
                perf_evlist__force_leader(evlist);
 }
 
-static int process_feature_event(struct perf_tool *tool,
-                                union perf_event *event,
-                                struct perf_session *session __maybe_unused)
+static int process_feature_event(struct perf_session *session,
+                                union perf_event *event)
 {
-       struct report *rep = container_of(tool, struct report, tool);
+       struct report *rep = container_of(session->tool, struct report, tool);
 
        if (event->feat.feat_id < HEADER_LAST_FEATURE)
-               return perf_event__process_feature(tool, event, session);
+               return perf_event__process_feature(session, event);
 
        if (event->feat.feat_id != HEADER_LAST_FEATURE) {
                pr_err("failed: wrong feature ID: %" PRIu64 "\n",
@@ -478,8 +477,8 @@ static int perf_evlist__tty_browse_hists(struct perf_evlist *evlist,
 
                hists__fprintf_nr_sample_events(hists, rep, evname, stdout);
                hists__fprintf(hists, !quiet, 0, 0, rep->min_percent, stdout,
-                              symbol_conf.use_callchain ||
-                              symbol_conf.show_branchflag_count);
+                              !(symbol_conf.use_callchain ||
+                                symbol_conf.show_branchflag_count));
                fprintf(stdout, "\n\n");
        }
 
@@ -981,6 +980,7 @@ int cmd_report(int argc, const char **argv)
                        .id_index        = perf_event__process_id_index,
                        .auxtrace_info   = perf_event__process_auxtrace_info,
                        .auxtrace        = perf_event__process_auxtrace,
+                       .event_update    = perf_event__process_event_update,
                        .feature         = process_feature_event,
                        .ordered_events  = true,
                        .ordering_requires_timestamps = true,
@@ -1105,7 +1105,7 @@ int cmd_report(int argc, const char **argv)
        OPT_CALLBACK(0, "percentage", NULL, "relative|absolute",
                     "how to display percentage of filtered entries", parse_filter_percentage),
        OPT_CALLBACK_OPTARG(0, "itrace", &itrace_synth_opts, NULL, "opts",
-                           "Instruction Tracing options",
+                           "Instruction Tracing options\n" ITRACE_HELP,
                            itrace_parse_synth_opts),
        OPT_BOOLEAN(0, "full-source-path", &srcline_full_filename,
                        "Show full source file name path for source lines"),
@@ -1124,6 +1124,9 @@ int cmd_report(int argc, const char **argv)
                   "Time span of interest (start,stop)"),
        OPT_BOOLEAN(0, "inline", &symbol_conf.inline_name,
                    "Show inline function"),
+       OPT_CALLBACK(0, "percent-type", &report.annotation_opts, "local-period",
+                    "Set percent type local/global-period/hits",
+                    annotate_parse_percent_type),
        OPT_END()
        };
        struct perf_data data = {
@@ -1366,9 +1369,9 @@ repeat:
        }
 
        if (session->tevent.pevent &&
-           pevent_set_function_resolver(session->tevent.pevent,
-                                        machine__resolve_kernel_addr,
-                                        &session->machines.host) < 0) {
+           tep_set_function_resolver(session->tevent.pevent,
+                                     machine__resolve_kernel_addr,
+                                     &session->machines.host) < 0) {
                pr_err("%s: failed to set libtraceevent function resolver\n",
                       __func__);
                return -1;