Messages in this thread | | | Date | Wed, 09 Jul 2008 20:19:52 -0400 | From | "H. Peter Anvin" <> | Subject | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| |
Eric W. Biederman wrote: > Jeremy Fitzhardinge <jeremy@goop.org> writes: > >>> Which means that my idea of using the technique we use on x86_32 will not >> work. >> >> No, the compiler memory model we use guarantees that everything will be within >> 2G of each other. The linker will spew loudly if that's not the case. > > The per cpu area is at least theoretically dynamically allocated. And we > really want to put it in cpu local memory. Which means on any reasonable > NUMA machine the per cpu areas should be all over the box. > > So there is no guarantee that with an arbitrary 64bit address in %gs of anything. >
That doesn't matter in the slightest.
> Grr. Except you are correct. We have to guarantee that the offsets we have > chosen at compile time still work. And we know all of the compile time offsets > will be in the -2G range. So they are all 32bit numbers. Negative 32bit > numbers to be sure. That trivially leaves us with everything working except > the nasty hard coded decimal 40.
The *offsets* have to be in the proper range, but the %gs_base is an arbitrary 64-bit number.
-hpa
| |