在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