Re: [PATCH v2 2/4] MIPS: Introduce config options for LLSC availability

From: Jiaxun Yang
Date: Fri Jun 21 2024 - 06:46:29 EST




在2024年6月21日六月 上午1:00,Maciej W. Rozycki写道:
> On Wed, 12 Jun 2024, Jiaxun Yang wrote:
>
>> Introduce CPU_HAS_LLSC and CPU_MAY_HAVE_LLSC to determine availability
>> of LLSC and Kconfig level.
>
> Taking the subsequent patches in this series into account this seems to
> create a parallel universe in which the availability of LL/SC for certain
> features is handled at the Kconfig level while in the other universe it's
> handled via <asm/mach-*/cpu-feature-overrides.h>.
>
> I think this ought not to be done in two places independently and the
> pieces in <asm/mach-*/cpu-feature-overrides.h> need to be removed, likely
> in the same change even, *however* not without double-checking whether
> there is not a case among them where a platform actually has LL/SC support
> disabled despite the CPU used there having architectural support for the
> feature. Otherwise we may end up with a case where a platform has LL/SC
> support disabled via its <asm/mach-*/cpu-feature-overrides.h> setting and
> yet we enable ARCH_SUPPORTS_ATOMIC_RMW or ARCH_HAVE_NMI_SAFE_CMPXCHG for
> it via Kconfig.

IMO it's necessary for platforms who know what are they doing such as ATH25,
which we took care in this series.

I'll add a build time assertion to ensure when CONFIG_CPU_HAS_LLSC is selected
kernel_uses_llsc is statically 1, so any incorrect overrides can be spotted
at build time.

It's better to clean up platform's overrides at some point, I'll leave
it to a future patch.

>
> The note from <asm/mach-ip32/cpu-feature-overrides.h> seems a candidate
> to move to arch/mips/Kconfig at the relevant place on this occasion too.
> There may be more such notes and they ought not to be lost.

Noted, I'll add a Kconfig symbol WAR_R5000_LLSC and rescue this comment.

Thanks
>
> Maciej

--
- Jiaxun