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

Li Li eggonlea at gmail.com
Thu Apr 7 23:39:09 EDT 2011


Dears,

I cannot understand how TLS EMU ensure it's SMP safe, because get_tls
helper (at 0xffff0fe0) just read the value from 0xffff0ff0. But all
SMP cores should have the exact same mapping to the vectors page (at
0xffff0000). So various threads running on different SMP cores at the
same time would get the same emulated TLS value (instead of thread
specific value set via set_tls). Could anybody explain this a little
bit?

Thanks,
Lea

On Mon, Jul 5, 2010 at 9:55 PM, Tony Lindgren <tony at atomide.com> wrote:
> * Tony Lindgren <tony at atomide.com> [100702 13:32]:
>> * Nicolas Pitre <nico at fluxnic.net> [100702 05:31]:
>> > On Thu, 1 Jul 2010, Jamie Lokier wrote:
>> >
>> > > Tony Lindgren wrote:
>> > > > +static void __init kuser_get_tls_init(unsigned long vectors)
>> > > > +{
>> > > > +       /*
>> > > > +        * vectors + 0xfe0 = __kuser_get_tls
>> > > > +        * vectors + 0xfe8 = hardware TLS instruction at 0xffff0fe8
>> > > > +        */
>> > > > +       if (tls_emu || has_tls)
>> > > > +               memcpy((void *)vectors + 0xfe0, (void *)vectors + 0xfe8, 4);
>> > > > +}
>> > >
>> > > Just a little opinion: Perhaps has_tls_reg would be a clearer name.
>> > > All variants "have TLS" after all.
>> >
>> > Good point.
>>
>> I like that too. Updated patch below.
>
> I've uploaded this patch into Russell's patch system:
>
> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=6207/1
>
> Jamie, assuming no more comments, do you care to Ack/Reviewed/Tested-by
> the patch in the link above?
>
> Regards,
>
> Tony
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>



More information about the linux-arm-kernel mailing list