Performance problems between gcc 12.2 and 13

Carlos O'Donell
Tue Jul 17 20:47:00 GMT 2012

On 7/17/2012 4:22 PM, Judd Montgomery wrote:
> After upgrading a server I have noticed that a few applications run quite a bit slower.

Could we please move this to libc-help until we have something specific to talk about in terms of a patch or reported bug?

Please remove libc-alpha from future responses.

> At least one cause and maybe the only cause looks to be in the eglibc libraries.  I compiled eglibc, found some performance differences and then compiled glibc versions to see if they had the same performance differences and they do.  The slowness appeared between versions 2.12.2 and 2.13 and continues in 2.16.
> Here is one example, I can come up with other functions with performance degredations as well.  Does anyone know why and how to fix it?

You've become your own distribution, and as such you must pay careful attention to the compiler and binary utilities you used to compile glibc.

> I compiled glibc with the following:
> $ env CFLAGS='-O2 -U_FORTIFY_SOURCE -fno-stack-protector' ../../src/$VERSION/configure --enable-omitfp --prefix=/opt/$VERSION --enable-add-ons && make && sudo make install

You should be running `make check' to ensure your build and environment are working.

> I compiled a test program with:
> $ export VERSION=glibc-2.13; gcc -Wall -Xlinker -rpath=/opt/$VERSION/lib -Xlinker -I/opt/$VERSION/lib/ loop.c -o loop.13
> $ export VERSION=glibc-2.12.2; gcc -Wall -Xlinker -rpath=/opt/$VERSION/lib -Xlinker -I/opt/$VERSION/lib/ loop.c -o loop.12

How does this compare to 2.16?

The x86_64 support has multiple string functions optimized for different processor variants.

What is the actual implementation that was selected at runtime?

If you step into the function which is the final routine selected to perform the string operation?

Carlos O'Donell
Mentor Graphics / CodeSourcery
+1 (613) 963 1026

More information about the Libc-help mailing list