perf session: Add missing sample flush for piped events
authorAdrian Hunter <[email protected]>
Fri, 18 Oct 2013 12:29:02 +0000 (15:29 +0300)
committerArnaldo Carvalho de Melo <[email protected]>
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 <[email protected]>
Reviewed-by: Jiri Olsa <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
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);