|
@@ -122,6 +122,7 @@ void perf_evlist__add(struct perf_evlist *evlist, struct perf_evsel *entry)
|
|
|
{
|
|
|
list_add_tail(&entry->node, &evlist->entries);
|
|
|
entry->idx = evlist->nr_entries;
|
|
|
+ entry->tracking = !entry->idx;
|
|
|
|
|
|
if (!evlist->nr_entries++)
|
|
|
perf_evlist__set_id_pos(evlist);
|
|
@@ -1295,3 +1296,19 @@ void perf_evlist__to_front(struct perf_evlist *evlist,
|
|
|
|
|
|
list_splice(&move, &evlist->entries);
|
|
|
}
|
|
|
+
|
|
|
+void perf_evlist__set_tracking_event(struct perf_evlist *evlist,
|
|
|
+ struct perf_evsel *tracking_evsel)
|
|
|
+{
|
|
|
+ struct perf_evsel *evsel;
|
|
|
+
|
|
|
+ if (tracking_evsel->tracking)
|
|
|
+ return;
|
|
|
+
|
|
|
+ evlist__for_each(evlist, evsel) {
|
|
|
+ if (evsel != tracking_evsel)
|
|
|
+ evsel->tracking = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ tracking_evsel->tracking = true;
|
|
|
+}
|