On Wed, Mar 14, 2018 at 2:22 AM, Jiri Olsa <jo...@kernel.org> wrote:
> We need to synthesize events first, because some
> features works on top of them (on report side).
>
> Link: http://lkml.kernel.org/n/tip-vz436m6fobfz8ykmuxo8p...@git.kernel.org
> Signed-off-by: Jiri Olsa <jo...@kernel.org>

Works for me.
Tested-by: Stephane Eranian <eran...@google.com>

> ---
>  tools/perf/builtin-record.c | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index d33103291b02..22ebeb92ac51 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -754,13 +754,10 @@ static int record__synthesize(struct record *rec, bool 
> tail)
>                 return 0;
>
>         if (data->is_pipe) {
> -               err = perf_event__synthesize_features(
> -                       tool, session, rec->evlist, 
> process_synthesized_event);
> -               if (err < 0) {
> -                       pr_err("Couldn't synthesize features.\n");
> -                       return err;
> -               }
> -
> +               /*
> +                * We need to synthesize events first, because some
> +                * features works on top of them (on report side).
> +                */
>                 err = perf_event__synthesize_attrs(tool, session,
>                                                    process_synthesized_event);
>                 if (err < 0) {
> @@ -768,6 +765,13 @@ static int record__synthesize(struct record *rec, bool 
> tail)
>                         goto out;
>                 }
>
> +               err = perf_event__synthesize_features(tool, session, 
> rec->evlist,
> +                                                     
> process_synthesized_event);
> +               if (err < 0) {
> +                       pr_err("Couldn't synthesize features.\n");
> +                       return err;
> +               }
> +
>                 if (have_tracepoints(&rec->evlist->entries)) {
>                         /*
>                          * FIXME err <= 0 here actually means that
> --
> 2.13.6
>

Reply via email to