Re: [PATCH RFC 0/6] Implement per-processor data areas for i386.

From: Jeremy Fitzhardinge
Date: Wed Aug 30 2006 - 13:10:51 EST


Andi Kleen wrote:
I tried that once on x86-64, but it wasn't possible because the linker
is missing the right relocations. It has something on the first look similar for __thread data in user space, but it wasn't usable for the kernel.
The other difficulty is that you can't take the addresses of things in the pda and pass them around, which happens a lot. It would be another matter if you could add an attribute to a pointer which told gcc "always use a %gs override for indirecting through this pointer", though that would still require some type qualifier on any pointer which holds the value.

(Hm, it would be interesting to see if we could possibly use the code generated by gcc for TLS variables...)

Even with a single indirection it is still far more efficient than a array lookup.

Yes. Even in the Xen case it will be useful to have a pointer to the vcpu structure, at least until Xen can be convinced to put the vcpu structure in the PDA itself.

J
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/