Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jun 1999 02:03:41 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        "Daniel J. O'Connor" <darius@dons.net.au>
Cc:        Zhihui Zhang <zzhang@cs.binghamton.edu>, freebsd-hackers@FreeBSD.ORG, Ladavac Marino <mladavac@metropolitan.at>
Subject:   Re: RE: Implementation of mmap() in FreeBSD
Message-ID:  <199906280903.CAA18676@apollo.backplane.com>
References:   <XFMail.990628181657.darius@dons.net.au>

next in thread | previous in thread | raw e-mail | index | archive | help
:>      Otherwise they wouldn't bother to use mmap and instead would use read()
:>      and write() :-)
:
:Hmm.. why (unless you forced mmap to use the address you gave it) would it not
:choose the start address to be on a page boundary?
:
:---
:Daniel O'Connor software and network engineer

    Because we can't realign the data in the pages without doing a buffer
    copy.  To force mmap() to align the data to the start of the page requires
    it to allocate memory and copy the in-core disk cache to the new memory.

    This is extremely wasteful of cpu and memory.  The current UNIX mmap
    implementation is able to simply map the existing in-core disk cache
    directly to the process - no buffer copying is required at all, and 
    it is extremely memory efficient.

    Programmers who use mmap() expect it to be as close to optimal as 
    possible.

    Also, even if we were to realign the data, it would not deal with the 
    end-of-data case.

						    -Matt



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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