This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Perfomance of gc-simple
- To: law at cygnus dot com
- Subject: Re: Perfomance of gc-simple
- From: Michael Meissner <meissner at cygnus dot com>
- Date: Tue, 9 May 2000 13:16:06 -0400
- Cc: Jamie Lokier <egcs at tantalophile dot demon dot co dot uk>, Laurynas Biveinis <lauras at softhome dot net>, gcc at gcc dot gnu dot org, DJGPP Workers <djgpp-workers at delorie dot com>
- References: <20000508182530.B30332@pcep-jamie.cern.ch> <3353.957812862@upchuck>
On Mon, May 08, 2000 at 01:07:42PM -0600, Jeffrey A Law wrote:
> In message <20000508182530.B30332@pcep-jamie.cern.ch>you write:
> > Jeffrey A Law wrote:
> > > Actually, older BSD systems (4.3 era) don't provide a usable
> > > mmap implementation.
> >
> > What's broken?
> Unfortunately, I don't remember offhand; I just know it doesn't work
> the way we need and we fall back to valloc (which is rather wasteful
> given BSD mallocs).
IIRC, as stated originally BSD systems just reserved the system call vector,
but did not implement it. Later implementations provided a mmap, but only
allowed it's use to talk to special memory like the frame buffer.
As an additional hinderence, there have been systems out there that supported
mmap to files, but you could not intermix I/O via mmap and read/write without
doing additional synchronization system calls (this was because the buffer
cache did not know about mmap, so if data was in the buffer cache, and you
modify it via mmap, when you reread the data, it would give you the earlier
data). I know gc doesn't do I/O to files, but I just happened to think of it
while writing the above paragrapph.
--
Michael Meissner, Cygnus Solutions, a Red Hat company.
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work: meissner@redhat.com phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org fax: +1 978-692-4482