RFC: x86-64: Use fxsave/xsave/xsavec in _dl_runtime_resolve [BZ #21265]

Florian Weimer fweimer@redhat.com
Fri Oct 20 12:58:00 GMT 2017


On 10/20/2017 01:09 PM, H.J. Lu wrote:
> When there are many DSOs, it takes more time to lookup a symbol
> and time to save/restore vector registers becomes noise.   The only
> case when time to save/restore vector registers becomes non-trivial is
> 
> 1. There are a few DSOs so that symbol lookup takes fewer cycles.  And
> 2. There are many external function calls which are executed only once.  And
> 3. These external functions take very few cycles.
> 
> I can create such a testcase.  But I don't think it is a typical case.

Completely agree.  Basically, a program which is affected would have to 
(a) call many functions, (b) with short symbol lookup chains, and (c) do 
very little actual work.  This seems to be a very unlikely scenario.

I have a test case.  GCC scales poorly with many function calls, and it 
is difficult to get --export-dynamic to work with recent GCC/binutils. 
I will try to run it on various machines.

Thanks,
Florian



More information about the Libc-alpha mailing list