mmap() sendfile()

Cedric Tabary ced at grumly.eu.org
Mon Dec 12 09:23:20 PST 2005


On 12/12/2005 08:38, Mike Silbersack wrote:
> On Mon, 12 Dec 2005, Cedric Tabary wrote:
> 
> >If it is true, doing a sendfile() on some very big files (even if not
> >keeping the descriptor open after) will kill the cache ?
> >
> >Please help me to understand why this patch ? and the difference between
> >sendfile() and mmap() at the memory or cache level..
> >
> >Cédric
> 
> My memory escapes me on all the details, but there were two potential 
> reasons not to use sendfile with 4.x that no longer apply in 5.x and 
> above:
> 
> 1.  Sendfile used to send small files inefficiently, sending the http 
> headers in one packet and the data in another.  I fixed this in 5.x.
> 
> 2.  Alan Cox improved the memory efficiency of sendfile greatly, it now 
> uses a single kernel buffer for all copies of the same block of the same 
> file, whereas the old implementation made an in-kernel copy of each block, 
> making it no more memory efficient than using mbufs.

What about using sendfile() or mmap() on NFS ?

Cédric


More information about the freebsd-hackers mailing list