Messages in this thread | | | Date | Thu, 11 May 2006 09:44:32 +1000 | From | Paul Mackerras <> | Subject | Re: [RFC/PATCH] Make powerpc64 use __thread for per-cpu variables |
| |
I wrote:
> Hmmm... Would it be sufficient to use a RELOC_HIDE in __get_cpu_var, > like this? > > #define __get_cpu_var(x) (*(RELOC_HIDE(&per_cpu__##x, 0)))
But that won't work because the compiler can still cache &per_cpu__x. I guess I have to do this:
#define __get_cpu_var(var, cpu) \ (*(__typeof__(&per_cpu__##var))({ \ void *__ptr; \ asm("addi %0,13,per_cpu__"#var"@tprel" \ : "=r" (__ptr)); \ __ptr; \ }))
That means we lose the possible optimization of combining the addi into a following load or store. Bah. However, I guess it's still better than what we do at the moment.
Paul. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |