Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libperf: Move 'system_wide' from 'struct evsel' to 'struct perf_evsel'

Move the 'system_wide 'member from perf's evsel to libperf's perf_evsel.

Committer notes:

Added stdbool.h as we now use bool here.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lore.kernel.org/lkml/20190913132355.21634-20-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Jiri Olsa and committed by
Arnaldo Carvalho de Melo
648b5af3 65aa2e6b

+21 -20
+2 -2
tools/perf/arch/x86/util/intel-pt.c
··· 422 422 perf_evsel__set_sample_bit(evsel, CPU); 423 423 perf_evsel__set_sample_bit(evsel, TIME); 424 424 425 - evsel->system_wide = true; 425 + evsel->core.system_wide = true; 426 426 evsel->no_aux_samples = true; 427 427 evsel->immediate = true; 428 428 ··· 723 723 switch_evsel->core.attr.sample_period = 1; 724 724 switch_evsel->core.attr.context_switch = 1; 725 725 726 - switch_evsel->system_wide = true; 726 + switch_evsel->core.system_wide = true; 727 727 switch_evsel->no_aux_samples = true; 728 728 switch_evsel->immediate = true; 729 729
+1 -1
tools/perf/builtin-script.c
··· 1916 1916 int cpu, thread; 1917 1917 static int header_printed; 1918 1918 1919 - if (counter->system_wide) 1919 + if (counter->core.system_wide) 1920 1920 nthreads = 1; 1921 1921 1922 1922 if (!header_printed) {
+2 -2
tools/perf/builtin-stat.c
··· 278 278 if (!counter->supported) 279 279 return -ENOENT; 280 280 281 - if (counter->system_wide) 281 + if (counter->core.system_wide) 282 282 nthreads = 1; 283 283 284 284 for (thread = 0; thread < nthreads; thread++) { ··· 1671 1671 struct evsel *counter; 1672 1672 1673 1673 evlist__for_each_entry(evsel_list, counter) { 1674 - if (!counter->system_wide) 1674 + if (!counter->core.system_wide) 1675 1675 return; 1676 1676 } 1677 1677
+2
tools/perf/lib/include/internal/evsel.h
··· 4 4 5 5 #include <linux/types.h> 6 6 #include <linux/perf_event.h> 7 + #include <stdbool.h> 7 8 8 9 struct perf_cpu_map; 9 10 struct perf_thread_map; ··· 19 18 20 19 /* parse modifier helper */ 21 20 int nr_members; 21 + bool system_wide; 22 22 }; 23 23 24 24 int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads);
+3 -3
tools/perf/tests/switch-tracking.c
··· 144 144 return err; 145 145 /* 146 146 * Check for no missing sched_switch events i.e. that the 147 - * evsel->system_wide flag has worked. 147 + * evsel->core.system_wide flag has worked. 148 148 */ 149 149 if (switch_tracking->tids[cpu] != -1 && 150 150 switch_tracking->tids[cpu] != prev_tid) { ··· 316 316 * 317 317 * This function implements a test that checks that sched_switch events and 318 318 * tracking events can be recorded for a workload (current process) using the 319 - * evsel->system_wide and evsel->tracking flags (respectively) with other events 319 + * evsel->core.system_wide and evsel->tracking flags (respectively) with other events 320 320 * sometimes enabled or disabled. 321 321 */ 322 322 int test__switch_tracking(struct test *test __maybe_unused, int subtest __maybe_unused) ··· 396 396 perf_evsel__set_sample_bit(switch_evsel, CPU); 397 397 perf_evsel__set_sample_bit(switch_evsel, TIME); 398 398 399 - switch_evsel->system_wide = true; 399 + switch_evsel->core.system_wide = true; 400 400 switch_evsel->no_aux_samples = true; 401 401 switch_evsel->immediate = true; 402 402
+5 -5
tools/perf/util/evlist.c
··· 319 319 static int perf_evlist__nr_threads(struct evlist *evlist, 320 320 struct evsel *evsel) 321 321 { 322 - if (evsel->system_wide) 322 + if (evsel->core.system_wide) 323 323 return 1; 324 324 else 325 325 return perf_thread_map__nr(evlist->core.threads); ··· 410 410 struct evsel *evsel; 411 411 412 412 evlist__for_each_entry(evlist, evsel) { 413 - if (evsel->system_wide) 413 + if (evsel->core.system_wide) 414 414 nfds += nr_cpus; 415 415 else 416 416 nfds += nr_cpus * nr_threads; ··· 536 536 sid->cpu = evlist->core.cpus->map[cpu]; 537 537 else 538 538 sid->cpu = -1; 539 - if (!evsel->system_wide && evlist->core.threads && thread >= 0) 539 + if (!evsel->core.system_wide && evlist->core.threads && thread >= 0) 540 540 sid->tid = perf_thread_map__pid(evlist->core.threads, thread); 541 541 else 542 542 sid->tid = -1; ··· 763 763 mp->prot &= ~PROT_WRITE; 764 764 } 765 765 766 - if (evsel->system_wide && thread) 766 + if (evsel->core.system_wide && thread) 767 767 continue; 768 768 769 769 cpu = perf_cpu_map__idx(evsel->core.cpus, evlist_cpu); ··· 793 793 * other events, so it should not need to be polled anyway. 794 794 * Therefore don't add it for polling. 795 795 */ 796 - if (!evsel->system_wide && 796 + if (!evsel->core.system_wide && 797 797 __perf_evlist__add_pollfd(evlist, fd, &maps[idx], revent) < 0) { 798 798 perf_mmap__put(&maps[idx]); 799 799 return -1;
+4 -4
tools/perf/util/evsel.c
··· 1232 1232 if (ncpus == 0 || nthreads == 0) 1233 1233 return 0; 1234 1234 1235 - if (evsel->system_wide) 1235 + if (evsel->core.system_wide) 1236 1236 nthreads = 1; 1237 1237 1238 1238 evsel->sample_id = xyarray__new(ncpus, nthreads, sizeof(struct perf_sample_id)); ··· 1663 1663 return false; 1664 1664 1665 1665 /* The system wide setup does not work with threads. */ 1666 - if (evsel->system_wide) 1666 + if (evsel->core.system_wide) 1667 1667 return false; 1668 1668 1669 1669 /* The -ESRCH is perf event syscall errno for pid's not found. */ ··· 1772 1772 threads = empty_thread_map; 1773 1773 } 1774 1774 1775 - if (evsel->system_wide) 1775 + if (evsel->core.system_wide) 1776 1776 nthreads = 1; 1777 1777 else 1778 1778 nthreads = threads->nr; ··· 1819 1819 for (thread = 0; thread < nthreads; thread++) { 1820 1820 int fd, group_fd; 1821 1821 1822 - if (!evsel->cgrp && !evsel->system_wide) 1822 + if (!evsel->cgrp && !evsel->core.system_wide) 1823 1823 pid = perf_thread_map__pid(threads, thread); 1824 1824 1825 1825 group_fd = get_group_fd(evsel, cpu, thread);
-1
tools/perf/util/evsel.h
··· 146 146 bool disabled; 147 147 bool no_aux_samples; 148 148 bool immediate; 149 - bool system_wide; 150 149 bool tracking; 151 150 bool per_pkg; 152 151 bool precise_max;
+1 -1
tools/perf/util/parse-events.c
··· 335 335 (*idx)++; 336 336 evsel->core.cpus = perf_cpu_map__get(cpus); 337 337 evsel->core.own_cpus = perf_cpu_map__get(cpus); 338 - evsel->system_wide = pmu ? pmu->is_uncore : false; 338 + evsel->core.system_wide = pmu ? pmu->is_uncore : false; 339 339 evsel->auto_merge_stats = auto_merge_stats; 340 340 341 341 if (name)
+1 -1
tools/perf/util/stat.c
··· 336 336 int ncpus = perf_evsel__nr_cpus(counter); 337 337 int cpu, thread; 338 338 339 - if (counter->system_wide) 339 + if (counter->core.system_wide) 340 340 nthreads = 1; 341 341 342 342 for (thread = 0; thread < nthreads; thread++) {