Subject: Re: swapfs and uvm.
To: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
From: Simon Burge <simonb@netbsd.org>
List: tech-kern
Date: 03/15/2000 06:13:24
Bill Sommerfeld wrote:

> >  * Perhaps later on using some sort of tree for directory entries.
> >    Maybe not an issue - how big to directories grow on /tmp?
> 
> The top-level directory in /tmp gets fairly large on some systems.
> 
> Maybe a hash table?

Sounds reasonable - for v2 :-)

> >  * Is it possible to release individual pages in an aobj back to the
> >    system?  This is one of the major problems with the current mfs (as
> >    well as copying data multiple times).  If not, is there another sort
> >    of uvm object that might be better suited to a swapfs?
> 
> I think someone else suggested implementing it as one aobj per file.
> I think this would be a better approach..
> 
> (among other things, it makes things like mmap of files in /tmp
> potentially less painful..)

The idea crossed my mind, but this raises a few more (to my mind
hairier) questions:

 * How quick is the process of creating an aobj?

 * Is there some kind of limit and/or performance impact of having lots
   of aobjs?  This would seem to be a function of how well the pool
   allocator can handle the load, and thus each aobj structure would
   live in wired kernel memory.  This maybe even could lead to a DOS
   attack if the circumstances were right and someone created lots of
   files in the swapfs.

 * From an mmap POV, would this limit the maximum size of a file to the
   size of swap (think sparse files)?

Simon.