Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Nov 2003 00:30:21 -0500
From:      Garance A Drosihn <drosih@rpi.edu>
To:        Robert Watson <rwatson@freebsd.org>, David Schultz <das@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: Unfortunate dynamic linking for everything
Message-ID:  <p06002033bbe0acb7b8c0@[128.113.24.47]>
In-Reply-To: <Pine.NEB.3.96L.1031118233432.99345H-100000@fledge.watson.org>
References:  <Pine.NEB.3.96L.1031118233432.99345H-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At 11:45 PM -0500 11/18/03, Robert Watson wrote:
>
>My feeling is we should all go away for a day or two, and run
>our favorite macro-benchmark on our favorite sensitive dynamic
>linking-sensitive application.

I wish I had the time and background to implement one solution
that I'd like to benchmark.

have a:  chflags ldcache /bin/sh

When the loader goes to execute some binary, it checks for this
ldcache flag.  If set, it checks to see if it already has a
cached copy of this program (probably checking based on a key
of inode+lastchg for a match).

If not, it links and loads the file into memory.  It saves away
a read-only copy of the result of that load.  Then it does the
appropriate magic to create a copy-on-write image of the loaded
file, and executes that.

If it already has a cached copy of that file, well, it just
makes another copy-on-write image of the loaded file, and
executes that.  No I/O, no loading, no linking.  Just RAM.

Yes, disks have been getting bigger, but so has available memory.
I think we would see a MUCH bigger win by taking advantage of
that memory, than we will ever see by statically-linking system
binaries.  On the other hand, I have no idea if the above idea
would be easy to implement in FreeBSD.  It also needs to be a
bit smarter than what I described, to cover the dynamic-library
case (eg: the very PAM/NSS issue that we're interested in).

If that isn't workable, I'm sure there are other strategies
which could be imagined.  Strategies which will give us more
of a performance boost than static-linking these few programs
will give us.

-- 
Garance Alistair Drosehn            =   gad@gilead.netel.rpi.edu
Senior Systems Programmer           or  gad@freebsd.org
Rensselaer Polytechnic Institute    or  drosih@rpi.edu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p06002033bbe0acb7b8c0>