Jason Thorpe wrote:
> On Wed, 7 Jul 1999 17:03:16 -0700 (PDT)
> Matthew Dillon <[EMAIL PROTECTED]> wrote:
>
> > If this could result in a smaller overall structure, it may be worth i
t.
> > To really make the combined structure smaller we would also have to
> > pair-down the fields in both structures. For example, the vnode struc
ture
> > contains a lot of temporary clustering fields that could be removed
> > entirely if clustering operations are done at the time of the actual I
/O
> > rather then before hand ( which leads to other problems related to
> > low-memory deadlocks :-(... but assuming that could be fixed... ).
>
> The way this is done in the still-in-development branch of NetBSD's
> unified buffer cache is to basically elimiate the old buffer cache
> interface for vnode read/write completely. When you want to do that
> sort of I/O to a vnode, you simply map a window of the object into
> KVA space (via ubc_alloc()), do the uiomove (lettings the pages fault
> in as necessary, getting added to the vnode's memq), and release the
> window (via ubc_release()). The actual window mappings themselves can
> persist, as well (although those mappings are nuked immediately if the
> vnode is marked VTEXT on VAC machines, to eliminate bad cache interactions).
Out of curiosity, how does it handle the problem of small 512 byte
directories? Does it consume a whole page or does it do something smarter?
Or does the ubc work apply to read/write only and the filesystem itself
continues to use the buffer cache interfaces for metadata and directories
still? Does the caching part of the bio system still exist?
Cheers,
-Peter
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message