[PATCH 1/2] arm: Replace CONFIG_HAS_TLS_REG with HWCAP_TLS and check for it on V6

Li Li eggonlea at gmail.com
Fri Apr 8 10:40:12 EDT 2011


Ah, I see. That's why I saw abnormal behavior when I enabled TLS EMU
on an ARMv7 SMP SOC. Many thanks! :)

On Fri, Apr 8, 2011 at 10:35 PM, Jamie Lokier <jamie at shareable.org> wrote:
> Li Li wrote:
>> Nicolas,
>>
>> Thanks for the explanation. :)
>>
>> I noticed what you mentioned. Actually, Kconfig says TLS EMU might be
>> used in some "old" (e.g. pre-armv6) SMP platforms without TLS
>> register. In such a case, could we still ensure it's SMP safe by a
>> single ldr?
>
> In that case, the hardware TLS 'mcr' is used, which traps and is
> emulated by the undefined instruction handler.  It's not fast but
> presumably those platforms don't really matter.
>
> See CONFIG_TLS_REG_EMUL in arch/arm/kernel/traps.c, and 'tls_emu'.
>
> 'tls_emu' is a constant, so if a kernel built for TLS emulation is run
> on something which has the TLS register, it will not work properly.
>
> -- JAmie
>



More information about the linux-arm-kernel mailing list