|
@@ -383,32 +383,6 @@ static bool perf_evsel__should_store_id(struct perf_evsel *counter)
|
|
|
return STAT_RECORD || counter->attr.read_format & PERF_FORMAT_ID;
|
|
|
}
|
|
|
|
|
|
-static struct perf_evsel *perf_evsel__reset_weak_group(struct perf_evsel *evsel)
|
|
|
-{
|
|
|
- struct perf_evsel *c2, *leader;
|
|
|
- bool is_open = true;
|
|
|
-
|
|
|
- leader = evsel->leader;
|
|
|
- pr_debug("Weak group for %s/%d failed\n",
|
|
|
- leader->name, leader->nr_members);
|
|
|
-
|
|
|
- /*
|
|
|
- * for_each_group_member doesn't work here because it doesn't
|
|
|
- * include the first entry.
|
|
|
- */
|
|
|
- evlist__for_each_entry(evsel_list, c2) {
|
|
|
- if (c2 == evsel)
|
|
|
- is_open = false;
|
|
|
- if (c2->leader == leader) {
|
|
|
- if (is_open)
|
|
|
- perf_evsel__close(c2);
|
|
|
- c2->leader = c2;
|
|
|
- c2->nr_members = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- return leader;
|
|
|
-}
|
|
|
-
|
|
|
static bool is_target_alive(struct target *_target,
|
|
|
struct thread_map *threads)
|
|
|
{
|
|
@@ -477,7 +451,7 @@ try_again:
|
|
|
if ((errno == EINVAL || errno == EBADF) &&
|
|
|
counter->leader != counter &&
|
|
|
counter->weak_group) {
|
|
|
- counter = perf_evsel__reset_weak_group(counter);
|
|
|
+ counter = perf_evlist__reset_weak_group(evsel_list, counter);
|
|
|
goto try_again;
|
|
|
}
|
|
|
|