Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Jun 2001 07:57:42 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Zhihui Zhang <zzhang@cs.binghamton.edu>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Confusion with mknod() and devfs
Message-ID:  <3B335CE6.E7E02938@mindspring.com>
References:  <Pine.SOL.4.21.0106211407290.17930-100000@onyx>

next in thread | previous in thread | raw e-mail | index | archive | help
Zhihui Zhang wrote:
> According to the red daemon book, alias vnodes are used to make cache
> coherent (vp as a key).  But getblk() stuff does not seem to check it.
> This makes me feel the code is there for historical reasons.

The "BSD 4.4" book was written about a system without a
unified VM and buffer cache.  The aliases it is talking
about are the buffers hung off a file vnode and the
buffers hung off a device vnode, from which that file
was being read.

The reason getblk() doesn't check it is that the cache is
maintained as coherent, so there's no need, since the
check is intended to permit explicit coherency operations
to take place, when necessary.  There is a lot of "missing"
code you aren't seeing that is referenced by the book.

It is still possible to create aliases, but they are done
by having multiple vm_object_t's pointing to the same data
blocks as backing objects.  This only occurs in the case
of stacking VFS's with a non-trivial relationship (e.g.
where the backing object contents would not be the same
between layers).  It can also occur to some small extent
in the NFS client FS case.

-- Terry

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?3B335CE6.E7E02938>