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] |
On 10 Aug 2015 23:12, OndÅej BÃlka wrote: > On Sun, Aug 09, 2015 at 11:09:20PM -0400, Mike Frysinger wrote: > > On 09 Aug 2015 14:24, Zack Weinberg wrote: > > > Is an IFUNC's variant-selecting function called only once per process, > > > or every time? > > > > it's once-per-process. if it were every time, it'd defeat the point of the > > optimization. > > No, its once per each shared library. it depends on how you're counting. i'm talking about each ifunc resolver -- it only executes once per process. yes, the overall lookup of ifunc relocs happens on a per-object basis, but it doesn't mean each resolver runs more than once. > > > If we sent libc.so-internal calls to 'memset' through the PLT (as is > > > currently done for 'malloc') would that mean they were subject to IFUNC > > > dispatch? > > > > it's a double edge sword. we specifically want to avoid the PLT for two > > reasons: > > (1) speed (PLT is slow) > > (2) interposition (we don't want someone exporting a memset symbol and then > > internal glibc code calling that instead of our own version) > > No, as I wrote in > > [PATCH] x86-64: Remove plt bypassing of ifuncs. > > thats completely flawed analysis. In best case you could save few > cycles. As I looked on functions you would for most functions lose > at leat twenty cycles as differences between implementations are that > big. it isn't a flawed analysis as i covered this explicitly in the part of my e-mail that you snipped -mike
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |