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

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Mon, 5 Jun 2023 11:27:57 -0300

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 <[email-masked]>

I wonder how to solve the various merge issues here:

1. this clashes with:

commit ae4aa00a1a9358e0007f6edc71b018a0b0d21190
Author: Ian Rogers <[email-masked]>
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

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel