[PATCH 3/5] perf tools: Get rid of evlist__add_on_all_cpus()

Namhyung Kim posted 5 patches 3 years, 6 months ago
[PATCH 3/5] perf tools: Get rid of evlist__add_on_all_cpus()
Posted by Namhyung Kim 3 years, 6 months ago
The cpu and thread maps are properly handled in libperf now.  No need to
do it in the perf tools anymore.  Let's remove the logic.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/evlist.c | 29 ++---------------------------
 1 file changed, 2 insertions(+), 27 deletions(-)

diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index fcfe5bcc0bcf..dcf57b271ff1 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -268,28 +268,6 @@ int evlist__add_dummy(struct evlist *evlist)
 	return 0;
 }
 
-static void evlist__add_on_all_cpus(struct evlist *evlist, struct evsel *evsel)
-{
-	evsel->core.system_wide = true;
-
-	/*
-	 * All CPUs.
-	 *
-	 * Note perf_event_open() does not accept CPUs that are not online, so
-	 * in fact this CPU list will include only all online 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);
-
-	/* No threads */
-	perf_thread_map__put(evsel->core.threads);
-	evsel->core.threads = perf_thread_map__new_dummy();
-
-	evlist__add(evlist, evsel);
-}
-
 struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide)
 {
 	struct evsel *evsel = evlist__dummy_event(evlist);
@@ -302,14 +280,11 @@ struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide)
 	evsel->core.attr.exclude_hv = 1;
 	evsel->core.attr.freq = 0;
 	evsel->core.attr.sample_period = 1;
+	evsel->core.system_wide = system_wide;
 	evsel->no_aux_samples = true;
 	evsel->name = strdup("dummy:u");
 
-	if (system_wide)
-		evlist__add_on_all_cpus(evlist, evsel);
-	else
-		evlist__add(evlist, evsel);
-
+	evlist__add(evlist, evsel);
 	return evsel;
 }
 
-- 
2.37.3.998.g577e59143f-goog
Re: [PATCH 3/5] perf tools: Get rid of evlist__add_on_all_cpus()
Posted by Adrian Hunter 3 years, 6 months ago
On 24/09/22 19:57, Namhyung Kim wrote:
> The cpu and thread maps are properly handled in libperf now.  No need to
> do it in the perf tools anymore.  Let's remove the logic.
> 
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>

Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  tools/perf/util/evlist.c | 29 ++---------------------------
>  1 file changed, 2 insertions(+), 27 deletions(-)
> 
> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
> index fcfe5bcc0bcf..dcf57b271ff1 100644
> --- a/tools/perf/util/evlist.c
> +++ b/tools/perf/util/evlist.c
> @@ -268,28 +268,6 @@ int evlist__add_dummy(struct evlist *evlist)
>  	return 0;
>  }
>  
> -static void evlist__add_on_all_cpus(struct evlist *evlist, struct evsel *evsel)
> -{
> -	evsel->core.system_wide = true;
> -
> -	/*
> -	 * All CPUs.
> -	 *
> -	 * Note perf_event_open() does not accept CPUs that are not online, so
> -	 * in fact this CPU list will include only all online 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);
> -
> -	/* No threads */
> -	perf_thread_map__put(evsel->core.threads);
> -	evsel->core.threads = perf_thread_map__new_dummy();
> -
> -	evlist__add(evlist, evsel);
> -}
> -
>  struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide)
>  {
>  	struct evsel *evsel = evlist__dummy_event(evlist);
> @@ -302,14 +280,11 @@ struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide)
>  	evsel->core.attr.exclude_hv = 1;
>  	evsel->core.attr.freq = 0;
>  	evsel->core.attr.sample_period = 1;
> +	evsel->core.system_wide = system_wide;
>  	evsel->no_aux_samples = true;
>  	evsel->name = strdup("dummy:u");
>  
> -	if (system_wide)
> -		evlist__add_on_all_cpus(evlist, evsel);
> -	else
> -		evlist__add(evlist, evsel);
> -
> +	evlist__add(evlist, evsel);
>  	return evsel;
>  }
>