Deleted Added
full compact
buf.9 (128951) buf.9 (130582)
1.\" Copyright (c) 1998
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 15 unchanged lines hidden (view full) ---

24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
1.\" Copyright (c) 1998
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 15 unchanged lines hidden (view full) ---

24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" $FreeBSD: head/share/man/man9/buf.9 128951 2004-05-05 10:47:19Z hmp $
32.\" $FreeBSD: head/share/man/man9/buf.9 130582 2004-06-16 08:33:57Z ru $
33.\"
34.Dd December 22, 1998
35.Dt BUF 9
36.Os
37.Sh NAME
38.Nm buf
39.Nd "kernel buffer I/O scheme used in FreeBSD VM system"
40.Sh DESCRIPTION

--- 80 unchanged lines hidden (view full) ---

121Due to
122the underlying pages being marked clean, the B_DELWRI|B_RELBUF combination must
123be interpreted to mean that the buffer is still actually dirty and must be
124written to its backing store before it can actually be released.
125In the case
126where B_DELWRI is not set, the underlying dirty pages are still properly
127marked as dirty and the buffer can be completely freed without losing that
128clean/dirty state information.
33.\"
34.Dd December 22, 1998
35.Dt BUF 9
36.Os
37.Sh NAME
38.Nm buf
39.Nd "kernel buffer I/O scheme used in FreeBSD VM system"
40.Sh DESCRIPTION

--- 80 unchanged lines hidden (view full) ---

121Due to
122the underlying pages being marked clean, the B_DELWRI|B_RELBUF combination must
123be interpreted to mean that the buffer is still actually dirty and must be
124written to its backing store before it can actually be released.
125In the case
126where B_DELWRI is not set, the underlying dirty pages are still properly
127marked as dirty and the buffer can be completely freed without losing that
128clean/dirty state information.
129.Po
130XXX do we have to check other flags in
131regards to this situation ???
132.Pc
129(XXX do we have to check other flags in
130regards to this situation ???)
133.Pp
134The kernel reserves a portion of its KVM space to hold VM Buffer's data
135maps.
136Even though this is virtual space (since the buffers are mapped
137from the buffer cache), we cannot make it arbitrarily large because
138instantiated VM Buffers (struct buf's) prevent their underlying pages in the
139buffer cache from being freed.
140This can complicate the life of the paging

--- 12 unchanged lines hidden ---
131.Pp
132The kernel reserves a portion of its KVM space to hold VM Buffer's data
133maps.
134Even though this is virtual space (since the buffers are mapped
135from the buffer cache), we cannot make it arbitrarily large because
136instantiated VM Buffers (struct buf's) prevent their underlying pages in the
137buffer cache from being freed.
138This can complicate the life of the paging

--- 12 unchanged lines hidden ---