From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Adrian Hunter <adrian.hunter@intel.com>,
Kan Liang <kan.liang@intel.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 06/15] perf evlist: Fix splice_list_tail() not setting evlist
Date: Tue, 15 Sep 2015 12:08:51 -0300 [thread overview]
Message-ID: <1442329740-18042-7-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1442329740-18042-1-git-send-email-acme@kernel.org>
From: Adrian Hunter <adrian.hunter@intel.com>
Commit d49e46950772 ("perf evsel: Add a backpointer to the evlist a
evsel is in") updated perf_evlist__add() but not
perf_evlist__splice_list_tail().
This illustrates that it is better if perf_evlist__splice_list_tail()
calls perf_evlist__add() instead of duplicating the logic, so do that.
This will also simplify a subsequent fix for propagating maps.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@intel.com>
Link: http://lkml.kernel.org/r/1441699142-18905-6-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evlist.c | 15 +++++++--------
tools/perf/util/evlist.h | 3 +--
tools/perf/util/parse-events.c | 3 +--
3 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 3a4445f26a2c..961560b2046b 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -136,15 +136,14 @@ void perf_evlist__add(struct perf_evlist *evlist, struct perf_evsel *entry)
}
void perf_evlist__splice_list_tail(struct perf_evlist *evlist,
- struct list_head *list,
- int nr_entries)
+ struct list_head *list)
{
- bool set_id_pos = !evlist->nr_entries;
+ struct perf_evsel *evsel, *temp;
- list_splice_tail(list, &evlist->entries);
- evlist->nr_entries += nr_entries;
- if (set_id_pos)
- perf_evlist__set_id_pos(evlist);
+ __evlist__for_each_safe(list, temp, evsel) {
+ list_del_init(&evsel->node);
+ perf_evlist__add(evlist, evsel);
+ }
}
void __perf_evlist__set_leader(struct list_head *list)
@@ -210,7 +209,7 @@ static int perf_evlist__add_attrs(struct perf_evlist *evlist,
list_add_tail(&evsel->node, &head);
}
- perf_evlist__splice_list_tail(evlist, &head, nr_attrs);
+ perf_evlist__splice_list_tail(evlist, &head);
return 0;
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h
index cfc4df68a9db..115d8b53c601 100644
--- a/tools/perf/util/evlist.h
+++ b/tools/perf/util/evlist.h
@@ -179,8 +179,7 @@ bool perf_evlist__valid_sample_id_all(struct perf_evlist *evlist);
bool perf_evlist__valid_read_format(struct perf_evlist *evlist);
void perf_evlist__splice_list_tail(struct perf_evlist *evlist,
- struct list_head *list,
- int nr_entries);
+ struct list_head *list);
static inline struct perf_evsel *perf_evlist__first(struct perf_evlist *evlist)
{
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index d826e6f515db..7e8ae21906e2 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -1140,10 +1140,9 @@ int parse_events(struct perf_evlist *evlist, const char *str,
ret = parse_events__scanner(str, &data, PE_START_EVENTS);
perf_pmu__parse_cleanup();
if (!ret) {
- int entries = data.idx - evlist->nr_entries;
struct perf_evsel *last;
- perf_evlist__splice_list_tail(evlist, &data.list, entries);
+ perf_evlist__splice_list_tail(evlist, &data.list);
evlist->nr_groups += data.nr_groups;
last = perf_evlist__last(evlist);
last->cmdline_group_boundary = true;
--
2.1.0
next prev parent reply other threads:[~2015-09-15 15:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-15 15:08 [GIT PULL 00/15] perf/urgent fixes Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 01/15] perf top: Fix segfault pressing -> with no hist entries Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 02/15] perf evlist: Simplify propagate_maps() logic Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 03/15] perf evlist: Simplify set_maps() logic Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 04/15] perf evlist: Remove redundant validation from propagate_maps() Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 05/15] perf evlist: Add has_user_cpus member Arnaldo Carvalho de Melo
2015-09-15 15:08 ` Arnaldo Carvalho de Melo [this message]
2015-09-15 15:08 ` [PATCH 07/15] perf evlist: Fix missing thread_map__put in propagate_maps() Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 08/15] perf evsel: Add own_cpus member Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 09/15] perf evlist: Make set_maps() more resilient Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 10/15] perf evlist: Make create_maps() use set_maps() Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 11/15] perf evlist: Factor out a function to propagate maps for a single evsel Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 12/15] perf evlist: Fix add() not propagating maps Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 13/15] perf evlist: Fix create_syswide_maps() " Arnaldo Carvalho de Melo
2015-09-15 15:08 ` [PATCH 14/15] perf tests: Fix task exit test setting maps Arnaldo Carvalho de Melo
2015-09-15 15:09 ` [PATCH 15/15] perf tests: Fix software clock events " Arnaldo Carvalho de Melo
2015-09-16 7:09 ` [GIT PULL 00/15] perf/urgent fixes Ingo Molnar
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=1442329740-18042-7-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.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.