]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - tools/perf/builtin-kvm.c
Merge tag 'locks-v4.1-1' of git://git.samba.org/jlayton/linux
[mirror_ubuntu-artful-kernel.git] / tools / perf / builtin-kvm.c
index 0894a817f67e6f5bb8a5d6398c9e2307f010efc6..1f9338f6109cdbe79f8f08e510c00e4a171d1f82 100644 (file)
@@ -18,6 +18,7 @@
 #include "util/stat.h"
 #include "util/top.h"
 #include "util/data.h"
+#include "util/ordered-events.h"
 
 #include <sys/prctl.h>
 #ifdef HAVE_TIMERFD_SUPPORT
@@ -730,9 +731,9 @@ static s64 perf_kvm__mmap_read_idx(struct perf_kvm_stat *kvm, int idx,
                        return -1;
                }
 
-               err = perf_session_queue_event(kvm->session, event, &kvm->tool, &sample, 0);
+               err = perf_session__queue_event(kvm->session, event, &sample, 0);
                /*
-                * FIXME: Here we can't consume the event, as perf_session_queue_event will
+                * FIXME: Here we can't consume the event, as perf_session__queue_event will
                 *        point to it, and it'll get possibly overwritten by the kernel.
                 */
                perf_evlist__mmap_consume(kvm->evlist, idx);
@@ -783,8 +784,10 @@ static int perf_kvm__mmap_read(struct perf_kvm_stat *kvm)
 
        /* flush queue after each round in which we processed events */
        if (ntotal) {
-               kvm->session->ordered_events.next_flush = flush_time;
-               err = kvm->tool.finished_round(&kvm->tool, NULL, kvm->session);
+               struct ordered_events *oe = &kvm->session->ordered_events;
+
+               oe->next_flush = flush_time;
+               err = ordered_events__flush(oe, OE_FLUSH__ROUND);
                if (err) {
                        if (kvm->lost_events)
                                pr_info("\nLost events: %" PRIu64 "\n\n",
@@ -1044,6 +1047,7 @@ static int read_events(struct perf_kvm_stat *kvm)
        struct perf_data_file file = {
                .path = kvm->file_name,
                .mode = PERF_DATA_MODE_READ,
+               .force = kvm->force,
        };
 
        kvm->tool = eops;
@@ -1066,7 +1070,7 @@ static int read_events(struct perf_kvm_stat *kvm)
        if (ret < 0)
                return ret;
 
-       return perf_session__process_events(kvm->session, &kvm->tool);
+       return perf_session__process_events(kvm->session);
 }
 
 static int parse_target_str(struct perf_kvm_stat *kvm)
@@ -1201,6 +1205,7 @@ kvm_events_report(struct perf_kvm_stat *kvm, int argc, const char **argv)
                            " time (sort by avg time)"),
                OPT_STRING('p', "pid", &kvm->opts.target.pid, "pid",
                           "analyze events only for given process id(s)"),
+               OPT_BOOLEAN('f', "force", &kvm->force, "don't complain, do it"),
                OPT_END()
        };