Em Mon, Apr 10, 2017 at 01:14:30PM -0700, David Carrillo-Cisneros escreveu:
> Session sets a number parameters that rely on evlist. These parameters
> are not used in pipe-mode and should not be set, since evlist is
> unavailable. Fix that.

Ditching this one as well, until further investigation, well, file must
be null in this case...

[acme@jouet linux]$ git bisect bad
5d71c27204d51492abe9fc69064fd36a0bda410b is the first bad commit
commit 5d71c27204d51492abe9fc69064fd36a0bda410b
Author: David Carrillo-Cisneros <davi...@google.com>
Date:   Mon Apr 10 13:14:30 2017 -0700

    perf session: Don't rely on evlist in pipe mode
    
    Session sets a number parameters that rely on evlist. These parameters
    are not used in pipe-mode and should not be set, since evlist is
    unavailable. Fix that.
    
    Signed-off-by: David Carrillo-Cisneros <davi...@google.com>
    Acked-by: Jiri Olsa <jo...@kernel.org>
    Cc: Alexander Shishkin <alexander.shish...@linux.intel.com>
    Cc: Andi Kleen <a...@linux.intel.com>
    Cc: He Kuang <heku...@huawei.com>
    Cc: Masami Hiramatsu <mhira...@kernel.org>
    Cc: Paul Turner <p...@google.com>
    Cc: Peter Zijlstra <pet...@infradead.org>
    Cc: Simon Que <s...@chromium.org>
    Cc: Stephane Eranian <eran...@google.com>
    Cc: Wang Nan <wangn...@huawei.com>
    Link: http://lkml.kernel.org/r/20170410201432.24807-6-davi...@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>

:040000 040000 7df28fe9d7c9d962b78c0532f4961caea2737b59 
34e4fed0042b1401c1a1a247d8ae40df17f9d272 M      tools
[acme@jouet linux]$
 
> Signed-off-by: David Carrillo-Cisneros <davi...@google.com>
> ---
>  tools/perf/util/session.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index a25302bc55a8..db554b7461b8 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -140,8 +140,14 @@ struct perf_session *perf_session__new(struct 
> perf_data_file *file,
>                       if (perf_session__open(session) < 0)
>                               goto out_close;
>  
> -                     perf_session__set_id_hdr_size(session);
> -                     perf_session__set_comm_exec(session);
> +                     /*
> +                      * set session attributes that are present in perf.data
> +                      * but not in pipe-mode.
> +                      */
> +                     if (!file->is_pipe) {
> +                             perf_session__set_id_hdr_size(session);
> +                             perf_session__set_comm_exec(session);
> +                     }
>               }
>       } else  {
>               session->machines.host.env = &perf_env;
> @@ -156,7 +162,11 @@ struct perf_session *perf_session__new(struct 
> perf_data_file *file,
>                       pr_warning("Cannot read kernel map\n");
>       }
>  
> -     if (tool && tool->ordering_requires_timestamps &&
> +     /*
> +      * In pipe-mode, evlist is empty until PERF_RECORD_HEADER_ATTR is
> +      * processed, so perf_evlist__sample_id_all is not meaningful here.
> +      */
> +     if (!file->is_pipe && tool && tool->ordering_requires_timestamps &&
>           tool->ordered_events && 
> !perf_evlist__sample_id_all(session->evlist)) {
>               dump_printf("WARNING: No sample_id_all support, falling back to 
> unordered processing\n");
>               tool->ordered_events = false;
> -- 
> 2.12.2.715.g7642488e1d-goog

Reply via email to