All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>,
	linux-kernel@vger.kernel.org, Jin@vger.kernel.org,
	Yao <yao.jin@linux.intel.com>
Subject: Re: [PATCH] perf evlist: Fix id index for heterogeneous systems
Date: Thu, 21 Jan 2021 10:19:01 -0300	[thread overview]
Message-ID: <20210121131901.GA345740@kernel.org> (raw)
In-Reply-To: <20210121125446.11287-1-adrian.hunter@intel.com>

Em Thu, Jan 21, 2021 at 02:54:46PM +0200, Adrian Hunter escreveu:
> perf_evlist__set_sid_idx() updates perf_sample_id with the evlist map
> index, cpu number and tid. It is passed indexes to the evsel's cpu and
> thread maps, but references the evlist's maps instead. That results in
> using incorrect cpu numbers on heterogeneous systems. Fix by using evsel
> maps.
> 
> The id index (PERF_RECORD_ID_INDEX) is used by AUX area tracing when in
> sampling mode. Having an incorrect cpu number causes the trace data to
> be attributed to the wrong cpu, and can result in decoder errors because
> the trace data is then associated with the wrong process.

Can you please provide a Fixes: tag so that the stable@kernel.org guys
can apply where appropriate?

Thanks,

- Arnaldo
 
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
>  tools/lib/perf/evlist.c | 17 ++++-------------
>  1 file changed, 4 insertions(+), 13 deletions(-)
> 
> diff --git a/tools/lib/perf/evlist.c b/tools/lib/perf/evlist.c
> index cfcdbd7be066..37be8042889f 100644
> --- a/tools/lib/perf/evlist.c
> +++ b/tools/lib/perf/evlist.c
> @@ -367,21 +367,13 @@ static struct perf_mmap* perf_evlist__alloc_mmap(struct perf_evlist *evlist, boo
>  	return map;
>  }
>  
> -static void perf_evlist__set_sid_idx(struct perf_evlist *evlist,
> -				     struct perf_evsel *evsel, int idx, int cpu,
> -				     int thread)
> +static void set_sid_idx(struct perf_evsel *evsel, int idx, int cpu, int thread)
>  {
>  	struct perf_sample_id *sid = SID(evsel, cpu, thread);
>  
>  	sid->idx = idx;
> -	if (evlist->cpus && cpu >= 0)
> -		sid->cpu = evlist->cpus->map[cpu];
> -	else
> -		sid->cpu = -1;
> -	if (!evsel->system_wide && evlist->threads && thread >= 0)
> -		sid->tid = perf_thread_map__pid(evlist->threads, thread);
> -	else
> -		sid->tid = -1;
> +	sid->cpu = perf_cpu_map__cpu(evsel->cpus, cpu);
> +	sid->tid = perf_thread_map__pid(evsel->threads, thread);
>  }
>  
>  static struct perf_mmap*
> @@ -500,8 +492,7 @@ mmap_per_evsel(struct perf_evlist *evlist, struct perf_evlist_mmap_ops *ops,
>  			if (perf_evlist__id_add_fd(evlist, evsel, cpu, thread,
>  						   fd) < 0)
>  				return -1;
> -			perf_evlist__set_sid_idx(evlist, evsel, idx, cpu,
> -						 thread);
> +			set_sid_idx(evsel, idx, cpu, thread);
>  		}
>  	}
>  
> -- 
> 2.17.1
> 

-- 

- Arnaldo

  reply	other threads:[~2021-01-21 13:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-21 12:54 [PATCH] perf evlist: Fix id index for heterogeneous systems Adrian Hunter
2021-01-21 13:19 ` Arnaldo Carvalho de Melo [this message]
2021-01-21 13:39   ` Adrian Hunter
2021-01-21 13:40     ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210121131901.GA345740@kernel.org \
    --to=acme@kernel.org \
    --cc=Jin@vger.kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=yao.jin@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.