lkml.org 
[lkml]   [2022]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 3/6] perf cpumap: Add is_subset function
Em Mon, Mar 28, 2022 at 04:26:45PM -0700, Ian Rogers escreveu:
> Returns true if the second argument is a subset of the first.

Thanks, applied.

- Arnaldo


> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> tools/lib/perf/cpumap.c | 20 ++++++++++++++++++++
> tools/lib/perf/include/internal/cpumap.h | 1 +
> 2 files changed, 21 insertions(+)
>
> diff --git a/tools/lib/perf/cpumap.c b/tools/lib/perf/cpumap.c
> index ee66760f1e63..23701024e0c0 100644
> --- a/tools/lib/perf/cpumap.c
> +++ b/tools/lib/perf/cpumap.c
> @@ -319,6 +319,26 @@ struct perf_cpu perf_cpu_map__max(struct perf_cpu_map *map)
> return map->nr > 0 ? map->map[map->nr - 1] : result;
> }
>
> +/** Is 'b' a subset of 'a'. */
> +bool perf_cpu_map__is_subset(const struct perf_cpu_map *a, const struct perf_cpu_map *b)
> +{
> + if (a == b || !b)
> + return true;
> + if (!a || b->nr > a->nr)
> + return false;
> +
> + for (int i = 0, j = 0; i < a->nr; i++) {
> + if (a->map[i].cpu > b->map[j].cpu)
> + return false;
> + if (a->map[i].cpu == b->map[j].cpu) {
> + j++;
> + if (j == b->nr)
> + return true;
> + }
> + }
> + return false;
> +}
> +
> /*
> * Merge two cpumaps
> *
> diff --git a/tools/lib/perf/include/internal/cpumap.h b/tools/lib/perf/include/internal/cpumap.h
> index 1973a18c096b..35dd29642296 100644
> --- a/tools/lib/perf/include/internal/cpumap.h
> +++ b/tools/lib/perf/include/internal/cpumap.h
> @@ -25,5 +25,6 @@ struct perf_cpu_map {
> #endif
>
> int perf_cpu_map__idx(const struct perf_cpu_map *cpus, struct perf_cpu cpu);
> +bool perf_cpu_map__is_subset(const struct perf_cpu_map *a, const struct perf_cpu_map *b);
>
> #endif /* __LIBPERF_INTERNAL_CPUMAP_H */
> --
> 2.35.1.1021.g381101b075-goog

--

- Arnaldo

\
 
 \ /
  Last update: 2022-03-30 22:34    [W:0.104 / U:0.844 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site