Re: F20 System Wide Change: ARM as primary Architecture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/15/2013 02:27 PM, Jakub Jelinek wrote:
> On Tue, Oct 15, 2013 at 02:16:28PM -0400, Carlos O'Donell wrote:
>> There is no effective security difference between accessing the randomized
>> stack guard value from a global variable or a value stored in the dynamic
>> thread vector.
>>
>> It is only a performance optimization. The choice of a global variable vs. 
>> DTV offset has only to do with the speed of access of the stack guard.
> 
> DTV access is of course going to be expensive, after all, that is a function
> call, the question was about reserving a word at fixed constant offset from
> the TLS base and how expensive that is vs. global variable access.
> For soft FP I guess global variable access must win, for -mtp=cp15
> ]it depends on how fast the mrc instruction is.

I talk about DTV, but I should really just say constant offset from TP
since that's what I mean. I don't actually mean using a TLS variable.

Will Newton tested the global variable access code on soft and hard TP
configurations and to quote some initial discussions:
https://sourceware.org/ml/libc-ports/2013-09/msg00134.html
~~~
>From a back of the envelope calculation the cost of accessing TLS is
one cycle faster than accessing a global in best case (e.g.
Cortex-A15), considerably slower in common case (50-60 cycles,
Cortex-A9) and slower still in worst case (function call to libgcc and
the kernel, ARMv4/ARMv5).
~~~
Therefore for 32-bit ARM it was decided that a global variable was the
best choice.

For AArch64 it will definitely be a reserved word at a constant offset
from the TP since that's going to be fastest.

Does that clarify things?

Cheers,
Carlos.

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux