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@xxxxxxxxxxx> wrote: > * Tony Lindgren <tony@xxxxxxxxxxx> [100702 13:32]: >> * Nicolas Pitre <nico@xxxxxxxxxxx> [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@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html