speed process startup by 7%

Jakub Jelinek jakub at redhat.com
Wed Jan 11 15:46:59 UTC 2006


On Wed, Jan 11, 2006 at 07:41:19AM -0800, John Reiser wrote:
> Jakub Jelinek wrote:
> > Prelink by default allocates libs on i?86 in the
> > 0x00101000 .. 0x00e00000
> > 0x02000000 .. 0x08000000
> > 0x41000000 .. 0x50000000
> > regions.  So, if kernel wants to put vDSO randomly into the ASCII zone,
> > it can have 528 choices (2MB from 0xe00000 to 0x1010000) or if it doesn't
> > care about that, it can use 18MB (0xe00000 to 0x2000000), i.e. 4608
> > possibile placements.
> > Of course it is possible to change prelink to pick up different
> > ranges (though, the 0 .. 1MB+4KB range is not an option due to various
> > emulators that need that range and from 0x08000000 or so start binaries
> > and if possible, prelink would like to use at least part of the ASCII zone).
> 
> It would be nice if prelink default policy avoided 0 .. 0x111000
> (1MB + 64KB + 4KB) so that vm86 could run various programs that
> use "himem" where the segment base is 0xffff0 (1MB - 16)
> and inclusive limit is 0xffff, which gives a highest address of
> 0x10ffef.  [It would have been nice if the default linux kernel
> loaded at 0x110000 instead of 0x100000.  Then Win3.1 and linux
> could have co-existed in memory.]

Just use LD_USE_LOAD_BIAS=0 in the environment of the emulator
to disregard prelink chosen addresses for it (similarly to how
the dynamic linker disregards prelink chosen addresses by default
for Position Independent Executables).

	Jakub




More information about the test mailing list