From: Adrian Hunter <adrian.hunter@intel.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
mingo@kernel.org, kan.liang@intel.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH V2 07/14] perf tools: Add evsel->own_cpus
Date: Tue, 8 Sep 2015 10:09:10 +0300 [thread overview]
Message-ID: <55EE8996.3010608@intel.com> (raw)
In-Reply-To: <20150908064508.GA20530@krava.brq.redhat.com>
On 08/09/15 09:45, Jiri Olsa wrote:
> On Mon, Sep 07, 2015 at 05:27:49PM +0300, Adrian Hunter wrote:
>> perf_evlist__propagate_maps() cannot easily tell if an evsel
>> has its own cpu map. To make that simpler, keep a copy of
>> the PMU cpu map and adjust the propagation logic accordingly.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
>> ---
>> tools/perf/util/evlist.c | 5 ++++-
>> tools/perf/util/evsel.c | 1 +
>> tools/perf/util/evsel.h | 1 +
>> tools/perf/util/parse-events.c | 4 ++--
>> 4 files changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
>> index c959c42080e3..6764e0eff849 100644
>> --- a/tools/perf/util/evlist.c
>> +++ b/tools/perf/util/evlist.c
>> @@ -1111,9 +1111,12 @@ static void perf_evlist__propagate_maps(struct perf_evlist *evlist)
>> * We already have cpus for evsel (via PMU sysfs) so
>> * keep it, if there's no target cpu list defined.
>> */
>> - if (!evsel->cpus || evlist->has_user_cpus) {
>> + if (!evsel->own_cpus || evlist->has_user_cpus) {
>> cpu_map__put(evsel->cpus);
>> evsel->cpus = cpu_map__get(evlist->cpus);
>> + } else if (evsel->cpus != evsel->own_cpus) {
>> + cpu_map__put(evsel->cpus);
>> + evsel->cpus = cpu_map__get(evsel->own_cpus);
>
> hum, so (evsel->cpus != evsel->own_cpus) could happen only when:
> - evsel->own_cpus != NULL
> - we overloaded evsel->cpus with evlist->cpus via perf_evlist__propagate_maps
> - we changed evlist->has_user_cpus = false
> - we recall perf_evlist__propagate_maps
>
> I'm missing usecase for that, or something else ;-)
That's true but the idea is to establish rules (invariants) that are always
true. Like an evsel either has its own cpu map or the same as the evlist.
next prev parent reply other threads:[~2015-09-08 7:12 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-07 14:27 [PATCH V2 00/14] perf tools: Fix gaps propagating maps Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 01/14] perf tools: Simplify perf_evlist__propagate_maps logic Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 02/14] perf tools: Simplify perf_evlist__set_maps logic Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 03/14] perf tools: Remove redundant validation from perf_evlist__propagate_maps Adrian Hunter
2015-09-08 6:53 ` Jiri Olsa
2015-09-08 7:17 ` Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 04/14] perf tools: Add evlist->has_user_cpus Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 05/14] perf tools: Fix perf_evlist__splice_list_tail not setting evlist Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 06/14] perf tools: Fix missing thread_map__put in perf_evlist__propagate_maps Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 07/14] perf tools: Add evsel->own_cpus Adrian Hunter
2015-09-08 6:45 ` Jiri Olsa
2015-09-08 7:09 ` Adrian Hunter [this message]
2015-09-08 7:38 ` Jiri Olsa
2015-09-08 14:32 ` Arnaldo Carvalho de Melo
2015-09-07 14:27 ` [PATCH V2 08/14] perf tools: Make perf_evlist__set_maps() more resilient Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 09/14] perf tools: Make perf_evlist__create_maps() use perf_evlist__set_maps() Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 10/14] perf tools: Factor out a function to propagate maps for a single evsel Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 11/14] perf tools: Fix perf_evlist__add() not propagating maps Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 12/14] perf tools: Fix perf_evlist__create_syswide_maps() " Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 13/14] perf tools: Fix task exit test setting maps Adrian Hunter
2015-09-07 14:27 ` [PATCH V2 14/14] perf tools: Fix software clock events " Adrian Hunter
2015-09-08 6:57 ` [PATCH V2 00/14] perf tools: Fix gaps propagating maps Jiri Olsa
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=55EE8996.3010608@intel.com \
--to=adrian.hunter@intel.com \
--cc=acme@redhat.com \
--cc=jolsa@redhat.com \
--cc=kan.liang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
/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.