This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: ld.so IO optimizations
- From: Keld Jørn Simonsen <keld at dkuug dot dk>
- To: Keld Jørn Simonsen <keld at dkuug dot dk>
- Cc: libc-alpha at sources dot redhat dot com
- Date: Tue, 22 Feb 2005 16:35:23 +0100
- Subject: Re: ld.so IO optimizations
- References: <20050213003355.GA28015@rap.rap.dk>
I am sorry that I asked these questions to the libc-alpha list.
Do anybody know if there is a list where they deal with ld?
Best regards
Keld
On Sun, Feb 13, 2005 at 01:33:55AM +0100, Keld Jørn Simonsen wrote:
> Hi!
>
> Is this the right list for discussing ld.so issues?
> I notice that at least on my distribution (mandrake 10.1 on a i586)
> ld.so is part of the glibc package.
>
> My issue is that I was annoyed with the time it takes to load
> openoffice.org. On my laptop it takes about 23 secs at the initial load.
>
> I did some measurment with vmstat of what was going on and noticed
> that in the first phase there was about 10 secs of almost nothing but
> reading. About 64 MB was read, and the cpu usage was about 3 %.
> I then looked at the speed I could just read the data, - that is the
> *.so files for ooo, and that could be done (with a cat *.so) in
> about 4 secs for 64 MB, on my laptop (where a hdparm -t /dev/hda gives a
> transfererate of about 22 MB/s).
>
> So I thought that with some care one could save about 6 secs in this
> first phase.
>
> I then looked in the sources for the ld.so (2.3.3) and tried to grasp
> what was going on in rtld.c but it was a bit hard to get global view.
> I also read parts of Ulrich's DSOHOWTO document. Is there an
> introduction to how ld.so is structured? I especially would like to see
> where the *.so files were read in and where alloaction of memory for the
> instruction and data segments were done.
>
> I also tried some experiments with LD_DEBUG - but had some trouble
> controlling it. 'all' gave too much output, and I could not find ways to
> specify more than one option to LD_DEBUG. Can that be done?
>
> I tried to set an output file with setenv LD_DEBUG_OUTPUT /tmp/ooo
> but nothing appeared in /tmp/ooo. Waht could have gotten wrong here?
>
> I think the first argument on the debug output is a kind of time, in the
> granuarity of 1 sec? Is that so? And then 1 sec is a bit coarse for
> investigating - is it possible to get at least microsecond accuracy?
>
> Does anybody know why the ld.so is not reading in the *.so files at full
> speed (only about one third speed is achieved)?
>
> Best regards
> Keld