aboutsummaryrefslogtreecommitdiff
path: root/share/man/man9/vm_page_hold.9
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2019-07-08 19:46:20 +0000
committerMark Johnston <markj@FreeBSD.org>2019-07-08 19:46:20 +0000
commiteeacb3b02ff5e7dd916c852c69cf2839c0d33627 (patch)
treee482e7f7b0ba782bac82424cbd9c7fb5b41fc9f6 /share/man/man9/vm_page_hold.9
parente64f3dee49fac728bc39e2e39e5fbe9e07e4efcb (diff)
Merge the vm_page hold and wire mechanisms.
The hold_count and wire_count fields of struct vm_page are separate reference counters with similar semantics. The remaining essential differences are that holds are not counted as a reference with respect to LRU, and holds have an implicit free-on-last unhold semantic whereas vm_page_unwire() callers must explicitly determine whether to free the page once the last reference to the page is released. This change removes the KPIs which directly manipulate hold_count. Functions such as vm_fault_quick_hold_pages() now return wired pages instead. Since r328977 the overhead of maintaining LRU for wired pages is lower, and in many cases vm_fault_quick_hold_pages() callers would swap holds for wirings on the returned pages anyway, so with this change we remove a number of page lock acquisitions. No functional change is intended. __FreeBSD_version is bumped. Reviewed by: alc, kib Discussed with: jeff Discussed with: jhb, np (cxgbe) Tested by: pho (previous version) Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D19247
Notes
Notes: svn path=/head/; revision=349846
Diffstat (limited to 'share/man/man9/vm_page_hold.9')
-rw-r--r--share/man/man9/vm_page_hold.975
1 files changed, 0 insertions, 75 deletions
diff --git a/share/man/man9/vm_page_hold.9 b/share/man/man9/vm_page_hold.9
deleted file mode 100644
index 971d6c2d5da2..000000000000
--- a/share/man/man9/vm_page_hold.9
+++ /dev/null
@@ -1,75 +0,0 @@
-.\"
-.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice(s), this list of conditions and the following disclaimer as
-.\" the first lines of this file unmodified other than the possible
-.\" addition of one or more copyright notices.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice(s), this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
-.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-.\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
-.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-.\" DAMAGE.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 13, 2001
-.Dt VM_PAGE_HOLD 9
-.Os
-.Sh NAME
-.Nm vm_page_hold ,
-.Nm vm_page_unhold
-.Nd "update a page's hold count"
-.Sh SYNOPSIS
-.In sys/param.h
-.In vm/vm.h
-.In vm/vm_page.h
-.Ft void
-.Fn vm_page_hold "vm_page_t m"
-.Ft void
-.Fn vm_page_unhold "vm_page_t m"
-.Sh DESCRIPTION
-The
-.Fn vm_page_hold
-function increases the hold count on a page.
-This prevents the page daemon from freeing the page.
-.Pp
-.Fn vm_page_hold
-should only be used for very temporary wiring of a page,
-as that page will not be considered for paging or
-reallocation for as long as its hold count is greater
-than zero.
-Also note that while wired pages are removed from whatever
-queue they are on,
-.Fn vm_page_hold
-does not affect the location of the page.
-If it is on a queue prior to the call, it will still
-be there afterward.
-.Pp
-If the page needs to be held for a long period of time,
-.Xr vm_page_wire 9
-should be used.
-.Pp
-.Fn vm_page_unhold
-function reduces the hold count on a page.
-If the hold count is zero it is possible that the page will be freed by the
-page daemon.
-.Sh SEE ALSO
-.Xr vm_page_unwire 9 ,
-.Xr vm_page_wire 9
-.Sh AUTHORS
-This manual page was written by
-.An Chad David Aq Mt davidc@acns.ab.ca .