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>