Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Oct 2002 00:04:00 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        Seigo Tanimura <tanimura@axe-inc.co.jp>, Julian Elischer <julian@elischer.org>, Jeff Roberson <jroberson@chesapeake.net>, <current@FreeBSD.ORG>, <tanimura@FreeBSD.ORG>
Subject:   Re: Dynamic growth of the buffer and buffer page reclaim
Message-ID:  <200210280804.g9S840nN094111@apollo.backplane.com>
References:   <20021028181505.K14172-100000@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
    Hmm.  Well, the real problem is not going to be the struct bio
    but will instead be the filesystem support.  Filesystems expect
    KVA mapped data from the buffer cache, and they use pointers
    to the data all over the place.  

    The buffer cache is very efficient, at least as long 
    filesystem block sizes are <= 16K.  You can mix filesystem
    block sizes as long as they are <= 16K and there will
    be no remapping and no fragmentation and buffer cache
    operation will be O(1).  If you mix filesystem block
    sizes <= 16K and > 16K the buffer cache will start to hit
    remapping and fragmentation cases (though its really
    the remapping cases that hurt).  It isn't a terrible 
    problem, but it is an issue.

    Tor has test cases for the above issue and could probably
    give you more information on it.

    The real performance problem is the fact that the buffer
    cache exists at all.  I wouldn't bother fixing the remapping
    issue and would instead focus on getting rid of the buffer
    cache entirely.   As I said, the issue there is filesystem
    block mapping support for meta-data (bitmaps, inodes), not I/O.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>


:On Mon, 28 Oct 2002, Seigo Tanimura wrote:
:
:> On Thu, 24 Oct 2002 15:05:30 +1000 (EST),
:>   Bruce Evans <bde@zeta.org.au> said:
:>
:> bde> Almost exactly what we have.  It turns out to be not very good, at least
:> bde> in its current implementation, since remapping is too expensive.  Things
:> bde> work OK to the extent that remapping is not required, but so would a
:> bde> much simpler implementation that uses less vm and more copying of data
:> bde> (copying seems to be faster than remapping).
:>
:> Which process is expensive in remapping?  Allocation of a KVA space?
:> Page wiring?  Or pmap operation?
:
:The allocation seemed to be most expensive when I looked at this about 2
:years ago.  The cause of the remapping seemed to be that different amounts
:of buffer kva were allocated for different buffer sizes.  Copying between
:filesystems with different block sizes therefore caused lots of remapping.
:I think this cause of remapping has been fixed.  VM has been improved too.
:I'm not sure how much in this area.
:
:Bruce
:

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




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