From: Jiri Olsa <jolsa@redhat.com>
To: "Jin, Yao" <yao.jin@linux.intel.com>
Cc: acme@kernel.org, jolsa@kernel.org, peterz@infradead.org,
mingo@redhat.com, alexander.shishkin@linux.intel.com,
Linux-kernel@vger.kernel.org, ak@linux.intel.com,
kan.liang@intel.com, yao.jin@intel.com
Subject: Re: [PATCH v2 1/2] perf evlist: Ensure grouped events with same cpu map
Date: Wed, 27 May 2020 12:28:05 +0200 [thread overview]
Message-ID: <20200527102805.GA420698@krava> (raw)
In-Reply-To: <d6986a15-1e21-3414-9d68-c265e7db03f4@linux.intel.com>
On Wed, May 27, 2020 at 02:31:03PM +0800, Jin, Yao wrote:
SNIP
> > Thanks
> > Jin Yao
>
> Issue is found!
>
> It looks we can't set "pos->leader = pos" in either for_each_group_member()
> or in for_each_group_evsel() because it may exit the iteration immediately.
>
> evlist__for_each_entry(evlist, evsel) {
> if (evsel->leader == evsel)
> continue;
>
> if (cpu_maps_matched(evsel->leader, evsel))
> continue;
>
> pr_warning("WARNING: event cpu maps are not fully matched, "
> "disable group\n");
>
> for_each_group_member(pos, evsel->leader) {
> pos->leader = pos;
> pos->core.nr_members = 0;
> }
>
> Let me use the example of '{cycles,unc_cbo_cache_lookup.any_i}' again.
>
> In evlist:
> cycles,
> unc_cbo_cache_lookup.any_i,
> unc_cbo_cache_lookup.any_i,
> unc_cbo_cache_lookup.any_i,
> unc_cbo_cache_lookup.any_i,
>
> When we reach the for_each_group_member at first time, evsel is the first
> unc_cbo_cache_lookup.any_i and evsel->leader is cycles. pos is same as the
> evsel (the first unc_cbo_cache_lookup.any_i).
>
> Once we execute "pos->leader = pos;", it's actually "evsel->leader = evsel".
> So now evsel->leader is changed to the first unc_cbo_cache_lookup.any_i.
>
> In next iteration, pos is the second unc_cbo_cache_lookup.any_i. pos->leader
> is cycles but unfortunately evsel->leader has been changed to the first
> unc_cbo_cache_lookup.any_i. So iteration stops immediately.
hum, AFAICS the iteration will not break but continue to next evsel and
pass the 'continue' for another group member.. what do I miss?
jirka
>
> I'm now thinking if we can solve this issue by an easy way.
>
> Thanks
> Jin Yao
>
next prev parent reply other threads:[~2020-05-27 10:28 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-25 6:55 [PATCH v2 1/2] perf evlist: Ensure grouped events with same cpu map Jin Yao
2020-05-25 6:55 ` [PATCH v2 2/2] perf test: Add test case for group members Jin Yao
2020-05-26 11:51 ` [PATCH v2 1/2] perf evlist: Ensure grouped events with same cpu map Jiri Olsa
2020-05-27 3:20 ` Jin, Yao
2020-05-27 6:31 ` Jin, Yao
2020-05-27 7:26 ` Jin, Yao
2020-05-27 10:28 ` Jiri Olsa [this message]
2020-05-27 13:49 ` Jin, Yao
2020-05-27 16:28 ` Jiri Olsa
2020-05-28 1:47 ` Jin, Yao
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=20200527102805.GA420698@krava \
--to=jolsa@redhat.com \
--cc=Linux-kernel@vger.kernel.org \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=yao.jin@intel.com \
--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.