Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Aug 1998 17:58:36 -0500 (EST)
From:      "John S. Dyson" <dyson@iquest.net>
To:        dfr@nlsystems.com (Doug Rabson)
Cc:        bf20761@binghamton.edu, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Relationship between buf/page/vnode/object?
Message-ID:  <199808032258.RAA16514@dyson.iquest.net>
In-Reply-To: <Pine.BSF.4.01.9808031048440.14391-100000@herring.nlsystems.com> from Doug Rabson at "Aug 3, 98 10:52:38 am"

next in thread | previous in thread | raw e-mail | index | archive | help
Doug Rabson said:
> On Sun, 2 Aug 1998, zhihuizhang wrote:
> 
> > 
> > After studying VM source code for two months, I have understood the
> > general ideas in it. All the pages (vm_page structures) belong to a
> > object/pindex pair and virtual memory/physical memory is decoupled by
> > introducing the VM object.
> > 
> > What confuses me now is that vnode and buf structures can also have pages
> > (vm_page structures) associated with them.  But file system cache and VM
> > cache are unified and should have a consistent interface. I mean all pages
> > should only hang off the vm_object structures. 
> > 
> > I hope that someone can describe the relationship of these important
> > structures (vm_object, vm_page, vnode, buf) briefly for me.  I have
> > searched the MailingList Archive in vain.
> > 
> > Any help is appreciated.
> 
> As far as I know, the pages which are held in buf structures are 'owned'
> by a unique vm_object.  This object holds cached pages for a vnode and has
> an associated vnode_pager.  The buf just provides a convenient way of
> performing 'regular' i/o into the same pages as those used for VM.
> 
The buffers are both temporary mappings, and a low water mark on the
amount of buffer space available.  Note that the current implemenation
of the VM/buffer cache code also limits the amount of dirty buffer
space to the size of the buffer cache (actually less than that.)

Almost all caching is done in the VM objects, and buffers (for file
data) are mappings into the objects.

-- 
John                  | Never try to teach a pig to sing,
dyson@iquest.net      | it makes one look stupid
jdyson@nc.com         | and it irritates the pig.

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?199808032258.RAA16514>