Messages in this thread | | | From | (Eric W. Biederman) | Date | Wed, 09 Jul 2008 16:36:24 -0700 | Subject | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| |
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.
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.
Eric
| |