This is the mail archive of the libc-alpha@sources.redhat.com 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]

benchmarking combreloc


Hello,
    Has anyone actually benchmarked the effect of combreloc on
loading programs built with a -z combreloc enabled binutils and
a glibc built against that as well. I have done some simple benchmarks
on Debian sid ppc comparing the effects of Jakub's prelinker with
that obtained with and without combreloc. This was done by using
the -Wl,-znocombreloc linker flag when linking the t1 tutorial to
attempt to disable combreloc in a program. 

Below are the observations...

bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.nocombreloc.unprelinked
14345:
14345:  runtime linker statistics:
14345:    total startup time in dynamic loader: 1955297 clock cycles
14345:              time needed for relocation: 1882018 clock cycles (96.2%)
14345:                   number of relocations: 9647
14345:        number of relocations from cache: 22744
14345:             time needed to load objects: 64002 clock cycles (3.2%)

bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.nocombreloc.prelinked
14354:
14354:  runtime linker statistics:
14354:    total startup time in dynamic loader: 130297 clock cycles
14354:              time needed for relocation: 56675 clock cycles (43.4%)
14354:                   number of relocations: 0
14354:        number of relocations from cache: 2555
14354:             time needed to load objects: 63553 clock cycles (48.7%)

bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.unprelinked
14355: 
14355:  runtime linker statistics:
14355:    total startup time in dynamic loader: 1978861 clock cycles
14355:              time needed for relocation: 1904007 clock cycles (96.2%)
14355:                   number of relocations: 9647
14355:        number of relocations from cache: 22744
14355:             time needed to load objects: 65247 clock cycles (3.2%)

bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.prelinked
14356: 
14356:  runtime linker statistics:
14356:    total startup time in dynamic loader: 135185 clock cycles
14356:              time needed for relocation: 57254 clock cycles (42.3%)
14356:                   number of relocations: 0
14356:        number of relocations from cache: 2555
14356:             time needed to load objects: 67923 clock cycles (50.2%)

While I clearly see an improvement with prelinking (this is using the
current glibc cvs plus Jakub's most recent 20011010 prelink glibc.patch)
I don't see any measureable effect from combreloc. Am I missing something
really obvious here? Thanks in advance for any clarifications.
                          Jack
------------------------------------------------------------------------------
Jack W. Howarth, Ph.D.                                    231 Albert Sabin Way
NMR Facility Director                              Cincinnati, Ohio 45267-0524
Dept. of Molecular Genetics                              phone: (513) 558-4420
Univ. of Cincinnati College of Medicine                    fax: (513) 558-8474


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