Hi Jiri,

2014-06-13 (금), 00:08 +0200, Jiri Olsa:
> The PERF_RECORD_FINISHED_ROUND governs queue flushing in
> reporting, so it needs to be stored for any kind of event.
> 
> Forcing the PERF_RECORD_FINISHED_ROUND event to be stored any
> time we finish the round and wrote at least one event.
> 
> Cc: Arnaldo Carvalho de Melo <a...@kernel.org>
> Cc: Corey Ashford <cjash...@linux.vnet.ibm.com>
> Cc: David Ahern <dsah...@gmail.com>
> Cc: Frederic Weisbecker <fweis...@gmail.com>
> Cc: Ingo Molnar <mi...@kernel.org>
> Cc: Jean Pihet <jean.pi...@linaro.org>
> Cc: Namhyung Kim <namhy...@kernel.org>
> Cc: Paul Mackerras <pau...@samba.org>
> Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
> Signed-off-by: Jiri Olsa <jo...@kernel.org>
> ---
>  tools/perf/builtin-record.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 378b85b..4869050 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -238,6 +238,7 @@ static struct perf_event_header finished_round_event = {
>  
>  static int record__mmap_read_all(struct record *rec)
>  {
> +     u64 bytes_written = rec->bytes_written;
>       int i;
>       int rc = 0;
>  
> @@ -250,7 +251,11 @@ static int record__mmap_read_all(struct record *rec)
>               }
>       }
>  
> -     if (perf_header__has_feat(&rec->session->header, HEADER_TRACING_DATA))
> +     /*
> +      * Mark the round finished in case we wrote
> +      * at least one event.
> +      */
> +     if (bytes_written != rec->bytes_written)
>               rc = record__write(rec, &finished_round_event, 
> sizeof(finished_round_event));

Hmm.. what was the rational behind the original code?  Why did it flush
the events only if session has tracepoint events?  Frederic?

I guess this change alone can impact the performance in your case.
Jiri, do you have a test result of it?

Thanks,
Namhyung


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to