Subject: Re: "filtered" shared libraries
To: None <tech-userlevel@netbsd.org, current-users@netbsd.org>
From: Greg A. Woods <woods@weird.com>
List: current-users
Date: 11/02/2001 11:50:48
[ On Thursday, November 1, 2001 at 23:11:54 (-0600), Eric Haszlakiewicz wrote: ]
> Subject: Re: "filtered" shared libraries
>
> On Thu, Nov 01, 2001 at 08:54:01PM -0500, der Mouse wrote:
> > 
> > Primarily, I would think, because it guarantees functional grouping.
> > If you filter-load stdio, strings, and the resolver, let's say, and use
> > only stdio, you page in only stdio.  If you load a single shared
> 
> 	You get almost exactly that just by splitting the library into
> sub-libraries that the filter lib links against.  Then you'd only page in
> the headers of each library until you actually used something in it.

and that of course is because the splitting forces narrow locality of
reference, at least for all the internal references in a given library
subsection.

You should be able to gain almost the same savings with demand paging if
our linker supported object ordering (eg. as the Darwin/MacOS-X one does).

Combining either of these with fully lazy binding would save a few more
I/Os too.

-- 
							Greg A. Woods

+1 416 218-0098      VE3TCP      <gwoods@acm.org>     <woods@robohack.ca>
Planix, Inc. <woods@planix.com>;   Secrets of the Weird <woods@weird.com>