aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-stat.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-stat.c')
-rw-r--r--tools/perf/builtin-stat.c28
1 files changed, 1 insertions, 27 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index d1028d7755bb..a635abfa77b6 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -383,32 +383,6 @@ static bool perf_evsel__should_store_id(struct perf_evsel *counter)
383 return STAT_RECORD || counter->attr.read_format & PERF_FORMAT_ID; 383 return STAT_RECORD || counter->attr.read_format & PERF_FORMAT_ID;
384} 384}
385 385
386static struct perf_evsel *perf_evsel__reset_weak_group(struct perf_evsel *evsel)
387{
388 struct perf_evsel *c2, *leader;
389 bool is_open = true;
390
391 leader = evsel->leader;
392 pr_debug("Weak group for %s/%d failed\n",
393 leader->name, leader->nr_members);
394
395 /*
396 * for_each_group_member doesn't work here because it doesn't
397 * include the first entry.
398 */
399 evlist__for_each_entry(evsel_list, c2) {
400 if (c2 == evsel)
401 is_open = false;
402 if (c2->leader == leader) {
403 if (is_open)
404 perf_evsel__close(c2);
405 c2->leader = c2;
406 c2->nr_members = 0;
407 }
408 }
409 return leader;
410}
411
412static bool is_target_alive(struct target *_target, 386static bool is_target_alive(struct target *_target,
413 struct thread_map *threads) 387 struct thread_map *threads)
414{ 388{
@@ -477,7 +451,7 @@ try_again:
477 if ((errno == EINVAL || errno == EBADF) && 451 if ((errno == EINVAL || errno == EBADF) &&
478 counter->leader != counter && 452 counter->leader != counter &&
479 counter->weak_group) { 453 counter->weak_group) {
480 counter = perf_evsel__reset_weak_group(counter); 454 counter = perf_evlist__reset_weak_group(evsel_list, counter);
481 goto try_again; 455 goto try_again;
482 } 456 }
483 457