Re: [PATCH] perf hashmap: Tidy hashmap dependency

From: Arnaldo Carvalho de Melo
Date: Wed Aug 24 2022 - 09:30:44 EST


Em Tue, Aug 23, 2022 at 10:06:04PM -0700, Ian Rogers escreveu:
> When libbpf is present the build uses definitions in libbpf hashmap.c,
> however, libbpf's hashmap.h wasn't being used. Switch to using the
> correct hashmap.h dependent on the define HAVE_LIBBPF_SUPPORT. This
> was the original intent in:
> https://lore.kernel.org/lkml/20200515221732.44078-8-irogers@xxxxxxxxxx/

Thanks, applied.

- Arnaldo


> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/util/bpf-loader.c | 6 +++++-
> tools/perf/util/evsel.c | 6 +++++-
> tools/perf/util/expr.h | 11 ++++-------
> tools/perf/util/stat.c | 6 +++++-
> 4 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c
> index e2052f4fed33..d657594894cf 100644
> --- a/tools/perf/util/bpf-loader.c
> +++ b/tools/perf/util/bpf-loader.c
> @@ -27,7 +27,11 @@
> #include "util.h"
> #include "llvm-utils.h"
> #include "c++/clang-c.h"
> -#include "hashmap.h"
> +#ifdef HAVE_LIBBPF_SUPPORT
> +#include <bpf/hashmap.h>
> +#else
> +#include "util/hashmap.h"
> +#endif
> #include "asm/bug.h"
>
> #include <internal/xyarray.h>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index 4852089e1d79..14846b7edb17 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -46,7 +46,11 @@
> #include "string2.h"
> #include "memswap.h"
> #include "util.h"
> -#include "hashmap.h"
> +#ifdef HAVE_LIBBPF_SUPPORT
> +#include <bpf/hashmap.h>
> +#else
> +#include "util/hashmap.h"
> +#endif
> #include "pmu-hybrid.h"
> #include "off_cpu.h"
> #include "../perf-sys.h"
> diff --git a/tools/perf/util/expr.h b/tools/perf/util/expr.h
> index bd2116983bbb..0403a92d9dcc 100644
> --- a/tools/perf/util/expr.h
> +++ b/tools/perf/util/expr.h
> @@ -2,14 +2,11 @@
> #ifndef PARSE_CTX_H
> #define PARSE_CTX_H 1
>
> -// There are fixes that need to land upstream before we can use libbpf's headers,
> -// for now use our copy unconditionally, since the data structures at this point
> -// are exactly the same, no problem.
> -//#ifdef HAVE_LIBBPF_SUPPORT
> -//#include <bpf/hashmap.h>
> -//#else
> +#ifdef HAVE_LIBBPF_SUPPORT
> +#include <bpf/hashmap.h>
> +#else
> #include "util/hashmap.h"
> -//#endif
> +#endif
>
> struct metric_ref;
>
> diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
> index 0882b4754fcf..ce5e9e372fc4 100644
> --- a/tools/perf/util/stat.c
> +++ b/tools/perf/util/stat.c
> @@ -14,7 +14,11 @@
> #include "evlist.h"
> #include "evsel.h"
> #include "thread_map.h"
> -#include "hashmap.h"
> +#ifdef HAVE_LIBBPF_SUPPORT
> +#include <bpf/hashmap.h>
> +#else
> +#include "util/hashmap.h"
> +#endif
> #include <linux/zalloc.h>
>
> void update_stats(struct stats *stats, u64 val)
> --
> 2.37.2.609.g9ff673ca1a-goog

--

- Arnaldo