Re: [PATCH v2] perf test amd: Fix build failure with amd-ibs-via-core-pmu.c

From: Arnaldo Carvalho de Melo
Date: Mon Jun 05 2023 - 10:28:07 EST


Em Sat, Jun 03, 2023 at 10:16:50AM +0530, Ravi Bangoria escreveu:
> Since amd-ibs-via-core-pmu.c was applied via Peter's tree, some of
> the changes came via Arnaldo's tree did not reflect in this file,
> which is causing build failures.
>
> arch/x86/tests/amd-ibs-via-core-pmu.c:47:25: error: ‘pmus’ undeclared
> (first use in this function)
> 47 | if (list_empty(&pmus))
> | ^~~~
> arch/x86/tests/amd-ibs-via-core-pmu.c:48:17: error: implicit declaration
> of function ‘perf_pmu__scan’; did you mean
> perf_pmus__scan’? [-Werror=implicit-function-declaration]
> 48 | perf_pmu__scan(NULL);
> | ^~~~~~~~~~~~~~
> | perf_pmus__scan
> arch/x86/tests/amd-ibs-via-core-pmu.c:50:19: error: implicit declaration
> of function ‘perf_pmu__find’; did you mean
> perf_pmus__find’? [-Werror=implicit-function-declaration]
> 50 | ibs_pmu = perf_pmu__find("ibs_op");
> | ^~~~~~~~~~~~~~
> | perf_pmus__find
>
> Fix those.
>
> Fixes: 1eaf496ed386 ("perf pmu: Separate pmu and pmus")
> Signed-off-by: Ravi Bangoria <ravi.bangoria@xxxxxxx>

I wonder how to solve the various merge issues here:

1. this clashes with:

commit ae4aa00a1a9358e0007f6edc71b018a0b0d21190
Author: Ian Rogers <irogers@xxxxxxxxxx>
Date: Tue May 2 15:38:27 2023 -0700

perf test: Move x86 hybrid tests to arch/x86

--------------

I tried cherry-picking the cset that introduces amd-ibs-via-core-pmu.c,
moved the test__hybrid lines a bit and then tried test merging the
result with tip/master, it works.

But then I tried applying this fix as a follow up cset, perf-tools-next
would have bisection history broken, but nah, but then I hit:

⬢[acme@toolbox perf-tools-next]$ git merge tip/master
Auto-merging tools/perf/arch/x86/include/arch-tests.h
Auto-merging tools/perf/arch/x86/tests/Build
Auto-merging tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
CONFLICT (add/add): Merge conflict in tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
Auto-merging tools/perf/arch/x86/tests/arch-tests.c
Automatic merge failed; fix conflicts and then commit the result.
⬢[acme@toolbox perf-tools-next]$ git diff
diff --cc tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
index 78b1902f6f59d8ce,2902798ca5c1ed1c..0000000000000000
--- a/tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
+++ b/tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
@@@ -44,7 -44,10 +44,14 @@@ int test__amd_ibs_via_core_pmu(struct t
int ret = TEST_OK;
int fd, i;

++<<<<<<< HEAD
+ ibs_pmu = perf_pmus__find("ibs_op");
++=======
+ if (list_empty(&pmus))
+ perf_pmu__scan(NULL);
+
+ ibs_pmu = perf_pmu__find("ibs_op");
++>>>>>>> tip/master
if (!ibs_pmu)
return TEST_SKIP;


How are things like this resolved in linux-next?

Removing this test from tip/master and I carry a fixed up
tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c introduction patch?

Cheers,

- Arnaldo

> ---
> v1->v2:
> - Remove unnecessary perf_pmus__scan(NULL) as suggested by Ian.
>
> tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c b/tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
> index 2902798ca5c1..78b1902f6f59 100644
> --- a/tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
> +++ b/tools/perf/arch/x86/tests/amd-ibs-via-core-pmu.c
> @@ -44,10 +44,7 @@ int test__amd_ibs_via_core_pmu(struct test_suite *test __maybe_unused,
> int ret = TEST_OK;
> int fd, i;
>
> - if (list_empty(&pmus))
> - perf_pmu__scan(NULL);
> -
> - ibs_pmu = perf_pmu__find("ibs_op");
> + ibs_pmu = perf_pmus__find("ibs_op");
> if (!ibs_pmu)
> return TEST_SKIP;
>
> --
> 2.40.1
>

--

- Arnaldo