2023-06-16 12:18:43

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH v2] perf/core: Drop __weak attribute from arch_perf_update_userpage() prototype

On 2023-06-16 12:48, Marc Zyngier wrote:
> Reiji reports that the arm64 implementation of
> arch_perf_update_userpage()
> is now ignored and replaced by the dummy stub in core code.
> This seems to happen since the PMUv3 driver was moved to driver/perf.
>
> As it turns out, dropping the __weak attribute from the *prototype*
> of the function solves the problem. You're right, this doesn't seem
> to make much sense. And yet... It appears that both symbols get
> flagged as weak, and that the first one to appear in the link order
> wins:
>
> $ nm drivers/perf/arm_pmuv3.o|grep arch_perf_update_userpage
> 0000000000001db0 W arch_perf_update_userpage
>
> Dropping the attribute from the prototype restores the expected
> behaviour, and arm64 is able to enjoy arch_perf_update_userpage()
> again.
>
> Fixes: 7755cec63ade ("arm64: perf: Move PMUv3 driver to drivers/perf")
> Fixes: f1ec3a517b43 ("kernel/events: Add a missing prototype for
> arch_perf_update_userpage()")
> Reported-by: Reiji Watanabe <[email protected]>
> Tested-by: Reiji Watanabe <[email protected]>
> Acked-by: Mark Rutland <[email protected]>
> Signed-off-by: Marc Zyngier <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Will Deacon <[email protected]>

And of course I forgot to pass --notes to git-send-email...

v2: Added fixes tags, both for the commit that introduce the
breakage
on arm64, and for the commit introducing the offending
prototype.
I did not Cc stable on purpose, as nothing appears to be broken
in other architectures.

Thanks,

M.
--
Jazz is not dead. It just smells funny...