Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Oct 1997 20:36:17 -0500 (EST)
From:      "John S. Dyson" <toor@dyson.iquest.net>
To:        tlambert@primenet.com (Terry Lambert)
Cc:        angio@angio.net, perlsta@cs.sunyit.edu, hackers@FreeBSD.ORG
Subject:   Re: help with fstat?
Message-ID:  <199710280136.UAA05574@dyson.iquest.net>
In-Reply-To: <199710271815.LAA23283@usr04.primenet.com> from Terry Lambert at "Oct 27, 97 06:15:56 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert said:
> > > unless mmap() maps in on demand... but i think i'll be eating up all my
> > > address space...
> > 
> >    Pages that you mmap are only paged in on demand.  The simple act of
> > mmapping a file doesn't cause it to be read in to memory.
> > 
> >    You're not going to eat up your address space with a few mmapped
> > files per process.  Remember, you're dealing with a 32 bit address
> > space - you could map in gigabytes per process and not have to worry.
> > 
> >    Remember also that each process has its own virtual address space.
> > They can't "collide" with each other in some way.  Each process could 
> > mmap huge chunks and you'd never have to worry.
> 
> Except if you linearly traverse the mapped file, and it's a big file.
> Then it will force almost all other clean pages out of core via LRU.
> 
> So you can thrash the paging algorithm this way.
> 
> But you can also thrash it (albiet less quickly) using reads.
> 
> There used to be a MAP_SEQUENTIAL flag to get it to discard buffers
> after they had been accesed, instead of forcing more pages off the
> LRU, but BSD doesn't support this.  8-(.
> 
> 
Try madvise(2).  It has a MADV_SEQUENTIAL.

-- 
John
dyson@freebsd.org
jdyson@nc.com



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