perf session: Add missing sample flush for piped events
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 18 Oct 2013 12:29:02 +0000 (15:29 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 21 Oct 2013 14:19:07 +0000 (11:19 -0300)
Piped events can be sorted so a final flush is needed.

Add that and remove a redundant 'err = 0'.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1382099356-4918-6-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/session.c

index d1e449534b331d7a75800c71579e4cc5250a7b90..d51e62db96a7ce9472b668aea3599e673d6acf6e 100644 (file)
@@ -1263,7 +1263,9 @@ more:
        if (!session_done())
                goto more;
 done:
-       err = 0;
+       /* do the final flush for ordered samples */
+       self->ordered_samples.next_flush = ULLONG_MAX;
+       err = flush_sample_queue(self, tool);
 out_err:
        free(buf);
        perf_session__warn_about_errors(self, tool);
@@ -1392,13 +1394,13 @@ more:
                                    "Processing events...");
        }
 
-       err = 0;
        if (session_done())
-               goto out_err;
+               goto out;
 
        if (file_pos < file_size)
                goto more;
 
+out:
        /* do the final flush for ordered samples */
        session->ordered_samples.next_flush = ULLONG_MAX;
        err = flush_sample_queue(session, tool);