xref: /dflybsd-src/share/man/man9/vm_page_alloc.9 (revision 4235e93664d29dd9d20ad5cc828fa878591ffb2f)
1bd5e5d2dSVenkatesh Srinivas.\"
2bd5e5d2dSVenkatesh Srinivas.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
3bd5e5d2dSVenkatesh Srinivas.\"
4bd5e5d2dSVenkatesh Srinivas.\" Redistribution and use in source and binary forms, with or without
5bd5e5d2dSVenkatesh Srinivas.\" modification, are permitted provided that the following conditions
6bd5e5d2dSVenkatesh Srinivas.\" are met:
7bd5e5d2dSVenkatesh Srinivas.\" 1. Redistributions of source code must retain the above copyright
8bd5e5d2dSVenkatesh Srinivas.\"    notice(s), this list of conditions and the following disclaimer as
9bd5e5d2dSVenkatesh Srinivas.\"    the first lines of this file unmodified other than the possible
10bd5e5d2dSVenkatesh Srinivas.\"    addition of one or more copyright notices.
11bd5e5d2dSVenkatesh Srinivas.\" 2. Redistributions in binary form must reproduce the above copyright
12bd5e5d2dSVenkatesh Srinivas.\"    notice(s), this list of conditions and the following disclaimer in the
13bd5e5d2dSVenkatesh Srinivas.\"    documentation and/or other materials provided with the distribution.
14bd5e5d2dSVenkatesh Srinivas.\"
15bd5e5d2dSVenkatesh Srinivas.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
16bd5e5d2dSVenkatesh Srinivas.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17bd5e5d2dSVenkatesh Srinivas.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18bd5e5d2dSVenkatesh Srinivas.\" DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
19bd5e5d2dSVenkatesh Srinivas.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20bd5e5d2dSVenkatesh Srinivas.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21bd5e5d2dSVenkatesh Srinivas.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22bd5e5d2dSVenkatesh Srinivas.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23bd5e5d2dSVenkatesh Srinivas.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24bd5e5d2dSVenkatesh Srinivas.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25bd5e5d2dSVenkatesh Srinivas.\" DAMAGE.
26bd5e5d2dSVenkatesh Srinivas.\"
27bd5e5d2dSVenkatesh Srinivas.\" $FreeBSD: src/share/man/man9/vm_page_alloc.9,v 1.6 2005/06/28 20:15:18 hmp Exp $
28bd5e5d2dSVenkatesh Srinivas.\"
29*4235e936SSascha Wildner.Dd May 20, 2018
30bd5e5d2dSVenkatesh Srinivas.Dt VM_PAGE_ALLOC 9
31bd5e5d2dSVenkatesh Srinivas.Os
32bd5e5d2dSVenkatesh Srinivas.Sh NAME
33bd5e5d2dSVenkatesh Srinivas.Nm vm_page_alloc
34bd5e5d2dSVenkatesh Srinivas.Nd "allocate a page for a"
35bd5e5d2dSVenkatesh Srinivas.Vt vm_object
36bd5e5d2dSVenkatesh Srinivas.Sh SYNOPSIS
37bd5e5d2dSVenkatesh Srinivas.In sys/param.h
38bd5e5d2dSVenkatesh Srinivas.In vm/vm.h
39bd5e5d2dSVenkatesh Srinivas.In vm/vm_page.h
40bd5e5d2dSVenkatesh Srinivas.Ft vm_page_t
41bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc "vm_object_t object" "vm_pindex_t pindex" "int page_req"
42bd5e5d2dSVenkatesh Srinivas.Sh DESCRIPTION
43bd5e5d2dSVenkatesh SrinivasThe
44bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc
45bd5e5d2dSVenkatesh Srinivasfunction allocates a page at
46bd5e5d2dSVenkatesh Srinivas.Fa pindex
47bd5e5d2dSVenkatesh Srinivaswithin
48bd5e5d2dSVenkatesh Srinivas.Fa object .
49bd5e5d2dSVenkatesh SrinivasIt is assumed that a page has not already been allocated at
50bd5e5d2dSVenkatesh Srinivas.Fa pindex .
51bd5e5d2dSVenkatesh SrinivasThe page returned is inserted into the object, but is not inserted
522192e32eSSascha Wildnerinto the pmap.
532192e32eSSascha WildnerThe vm_object must be locked on entry.
54bd5e5d2dSVenkatesh Srinivas.Pp
55bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc
56bd5e5d2dSVenkatesh Srinivaswill not block.
57bd5e5d2dSVenkatesh Srinivas.Pp
58bd5e5d2dSVenkatesh SrinivasIts arguments are:
59bd5e5d2dSVenkatesh Srinivas.Bl -tag -width ".Fa page_req"
60bd5e5d2dSVenkatesh Srinivas.It Fa object
61bd5e5d2dSVenkatesh SrinivasThe VM object to allocate the page for.
62bd5e5d2dSVenkatesh Srinivas.It Fa pindex
63bd5e5d2dSVenkatesh SrinivasThe index into the object at which the page should be inserted.
64bd5e5d2dSVenkatesh Srinivas.It Fa page_req
65bd5e5d2dSVenkatesh SrinivasA flag indicating how the page should be allocated.
66bd5e5d2dSVenkatesh Srinivas.Bl -tag -width ".Dv VM_ALLOC_INTERRUPT"
67bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_NORMAL
68bd5e5d2dSVenkatesh SrinivasThe page should be allocated with no special treatment.
69bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_QUICK
70bd5e5d2dSVenkatesh SrinivasThe page should only be allocated from the free queue.
71bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_SYSTEM
72bd5e5d2dSVenkatesh SrinivasThe page can be allocated if the cache queue is empty and the free
73bd5e5d2dSVenkatesh Srinivaspage count is above the interrupt reserved water mark.
74bd5e5d2dSVenkatesh SrinivasIf
75bd5e5d2dSVenkatesh Srinivas.Dv VM_ALLOC_INTERRUPT
76bd5e5d2dSVenkatesh Srinivasis set, the page can be allocated as long as the free page count is
77bd5e5d2dSVenkatesh Srinivasgreater than zero.
78bd5e5d2dSVenkatesh SrinivasThis flag should be used only when the system really needs the page.
79bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_INTERRUPT
80bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc
81bd5e5d2dSVenkatesh Srinivasis being called during an interrupt and therefore the cache cannot
82bd5e5d2dSVenkatesh Srinivasbe accessed.
83bd5e5d2dSVenkatesh SrinivasThe page will only be returned successfully if the free count is greater
84bd5e5d2dSVenkatesh Srinivasthan zero.
85bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_ZERO
86bd5e5d2dSVenkatesh SrinivasIndicate a preference for a pre-zeroed page.
87bd5e5d2dSVenkatesh SrinivasThere is no guarantee that the page thus returned will be zeroed, but
88bd5e5d2dSVenkatesh Srinivasit will be marked as such.
89bd5e5d2dSVenkatesh Srinivas.El
90bd5e5d2dSVenkatesh Srinivas.El
91bd5e5d2dSVenkatesh Srinivas.Sh RETURN VALUES
92bd5e5d2dSVenkatesh SrinivasThe
93bd5e5d2dSVenkatesh Srinivas.Vt vm_page_t
94bd5e5d2dSVenkatesh Srinivasthat was allocated is returned if successful; otherwise,
95bd5e5d2dSVenkatesh Srinivas.Dv NULL
962192e32eSSascha Wildneris returned.
97*4235e936SSascha WildnerThe returned page will be marked busy.
98bd5e5d2dSVenkatesh Srinivas.Sh AUTHORS
99bd5e5d2dSVenkatesh SrinivasThis manual page was written by
100c616d378SFranco Fichtner.An Chad David Aq Mt davidc@acns.ab.ca .
101