Chen, Kenneth W schrieb:
__gp is positioned so far out that it is almost at the end of all data
sections. On 2.6.11-rc1, 80% of kernel data symbols are out of 22-bit
immediate offset from __gp. This means accessing these symbols are
unnecessarily expansive such that they have to go through global offset
table (a memory load to get the symbol address). Among these out of
reach symbols from __gp, some are very frequently used, like Jiffies,
etc.
Wouldn't a solution using movl for the offset and then add to gp be the
cheaper solution in terms of cycles? I am wondering that there is an
additional and expensive load needed with the item possibly (likely or
not) being not in the cache. But there are the software conventions and
"nobody will ever need more than" 4MB of short data.
Can we position the __gp somewhat more optimally, to cover more of these
symbols? Something like the following patch would make all of them fall
into the 22-bit immediate offset relative to gp.
Did you have benchmarks? Or at least a comparison of the resulting code
size. The code size should shrink when more items can be addressed
directly. Furthermore the code size should be a good indicator for the
performance gain you could achive.
Christian
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html