Commit 921e3be5 authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo
Browse files

perf record: Use evlist__add_dummy_on_all_cpus() in record__config_text_poke()



Use evlist__add_dummy_on_all_cpus() in record__config_text_poke() in
preparation for allowing system-wide events on all CPUs while the user
requested events are on only user requested CPUs.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Acked-by: default avatarIan Rogers <irogers@google.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Leo Yan <leo.yan@linaro.org>
Link: https://lore.kernel.org/r/20220524075436.29144-7-adrian.hunter@intel.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 126d68fd
Loading
Loading
Loading
Loading
+3 −18
Original line number Diff line number Diff line
@@ -869,7 +869,6 @@ static int record__auxtrace_init(struct record *rec __maybe_unused)
static int record__config_text_poke(struct evlist *evlist)
{
	struct evsel *evsel;
	int err;

	/* Nothing to do if text poke is already configured */
	evlist__for_each_entry(evlist, evsel) {
@@ -877,27 +876,13 @@ static int record__config_text_poke(struct evlist *evlist)
			return 0;
	}

	err = parse_events(evlist, "dummy:u", NULL);
	if (err)
		return err;

	evsel = evlist__last(evlist);
	evsel = evlist__add_dummy_on_all_cpus(evlist);
	if (!evsel)
		return -ENOMEM;

	evsel->core.attr.freq = 0;
	evsel->core.attr.sample_period = 1;
	evsel->core.attr.text_poke = 1;
	evsel->core.attr.ksymbol = 1;

	evsel->core.system_wide = true;
	evsel->no_aux_samples = true;
	evsel->immediate = true;

	/* Text poke must be collected on all CPUs */
	perf_cpu_map__put(evsel->core.own_cpus);
	evsel->core.own_cpus = perf_cpu_map__new(NULL);
	perf_cpu_map__put(evsel->core.cpus);
	evsel->core.cpus = perf_cpu_map__get(evsel->core.own_cpus);

	evsel__set_sample_bit(evsel, TIME);

	return 0;