This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] x86-64: Implement strcpy family IFUNC selectors in C


On 06/11/2017 10:21 AM, H.J. Lu wrote:
> On Sun, Jun 11, 2017 at 7:01 AM, Zack Weinberg <zackw@panix.com> wrote:
>> On 06/11/2017 09:50 AM, H.J. Lu wrote:
>>> Implement strcpy family IFUNC selectors in C.
>>>
>>> All internal calls within libc.so can use IFUNC on x86-64 since unlike
>>> x86, x86-64 doesn't need to reserve a register to make a PLT call.  For
>>> libc,a, we can't use IFUNC for functions which are called before IFUNC
>>> has been initialized.  Use IFUNC internally reduces the icache footprint
>>> since libc.so and other codes in the process use the same implementations.
>>> The patch uses IFUNC for strcpy family functions within libc.
>>>
>>> Any comments?
>>
>> I like the idea, but I don't understand ifuncs nearly well enough to
>> comment on your code.  I recall _strenuous_ objections to this concept
>> in the past; please post some performance numbers or something.
> 
> I don't believe there is a benchmark where hot spots are within libc.so.
> BTW, if there are such benchmarks, I'd love to know.
> 
> The main benefit is to reduce icache footprint at a price of an indirect
> branch via PLT.

Could you maybe produce numbers on the reduced icache footprint?  perf
should be able to capture that...

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]