The problem I found when I tried to do that on powerpc is that gcc
believes it can cache addresses of TLS variables. If you try and use
TLS accesses for per-cpu variables then you end up accessing the wrong
cpu's variables due to that, since our "TLS" pointer can change at any
point where preemption is enabled.
If we wanted to do per-task variables then TLS would be perfect for
that.
Paul.
-