summaryrefslogtreecommitdiff
path: root/static/freebsd/man9/vm_page_busy.9 4.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man9/vm_page_busy.9 4.html')
-rw-r--r--static/freebsd/man9/vm_page_busy.9 4.html178
1 files changed, 0 insertions, 178 deletions
diff --git a/static/freebsd/man9/vm_page_busy.9 4.html b/static/freebsd/man9/vm_page_busy.9 4.html
deleted file mode 100644
index cd48c618..00000000
--- a/static/freebsd/man9/vm_page_busy.9 4.html
+++ /dev/null
@@ -1,178 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">VM_PAGE_BUSY(9)</td>
- <td class="head-vol">Kernel Developer's Manual</td>
- <td class="head-rtitle">VM_PAGE_BUSY(9)</td>
- </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<p class="Pp"><code class="Nm">vm_page_busied</code>,
- <code class="Nm">vm_page_busy_downgrade</code>,
- <code class="Nm">vm_page_busy_sleep</code>,
- <code class="Nm">vm_page_sbusied</code>,
- <code class="Nm">vm_page_sunbusy</code>,
- <code class="Nm">vm_page_trysbusy</code>,
- <code class="Nm">vm_page_tryxbusy</code>,
- <code class="Nm">vm_page_xbusied</code>,
- <code class="Nm">vm_page_xunbusy</code>,
- <code class="Nm">vm_page_assert_sbusied</code>,
- <code class="Nm">vm_page_assert_unbusied</code>,
- <code class="Nm">vm_page_assert_xbusied</code> &#x2014;
- <span class="Nd">protect page identity changes and page content
- references</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="In">#include
- &lt;<a class="In">sys/param.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">vm/vm.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">vm/vm_page.h</a>&gt;</code></p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">vm_page_busied</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">vm_page_busy_downgrade</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">bool</var>
- <br/>
- <code class="Fn">vm_page_busy_sleep</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>, <var class="Fa" style="white-space: nowrap;">const char *msg</var>,
- <var class="Fa" style="white-space: nowrap;">int allocflags</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">vm_page_sbusied</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">vm_page_sunbusy</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">vm_page_trysbusy</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">vm_page_tryxbusy</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">vm_page_xbusied</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">vm_page_xunbusy</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp">
- <br/>
- <code class="Cd">options INVARIANTS</code>
- <br/>
- <code class="Cd">options INVARIANT_SUPPORT</code>
- <br/>
- <var class="Ft">void</var>
- <br/>
- <code class="Fn">vm_page_assert_sbusied</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">vm_page_assert_unbusied</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">vm_page_assert_xbusied</code>(<var class="Fa" style="white-space: nowrap;">vm_page_t
- m</var>);</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">Page identity is usually protected by higher level locks like
- vm_object locks and vm page locks. However, sometimes it is not possible to
- hold such locks for the time necessary to complete the identity change. In
- such case the page can be exclusively busied by a thread which needs to own
- the identity for a certain amount of time.</p>
-<p class="Pp">In other situations, threads do not need to change the identity of
- the page but they want to prevent other threads from changing the identity
- themselves. For example, when a thread wants to access or update page
- contents without a lock held the page is shared busied.</p>
-<p class="Pp">Before busying a page the vm_object lock must be held. The same
- rule applies when a page is unbusied. This makes the vm_object lock a real
- busy interlock.</p>
-<p class="Pp" id="vm_page_busied">The
- <a class="permalink" href="#vm_page_busied"><code class="Fn">vm_page_busied</code></a>()
- function returns non-zero if the current thread busied
- <var class="Fa">m</var> in either exclusive or shared mode. Returns zero
- otherwise.</p>
-<p class="Pp" id="vm_page_busy_downgrade">The
- <a class="permalink" href="#vm_page_busy_downgrade"><code class="Fn">vm_page_busy_downgrade</code></a>()
- function must be used to downgrade <var class="Fa">m</var> from an exclusive
- busy state to a shared busy state.</p>
-<p class="Pp" id="vm_page_busy_sleep">The
- <a class="permalink" href="#vm_page_busy_sleep"><code class="Fn">vm_page_busy_sleep</code></a>()
- checks the busy state of the page <var class="Fa">m</var> and puts the
- invoking thread to sleep if the page is busy. The VM object for the page
- must be locked. The <var class="Fa">allocflags</var> parameter must be
- either <code class="Dv">0</code>, in which case the function will sleep if
- the page is busied, or <code class="Dv">VM_ALLOC_IGN_SBUSY</code>, in which
- case the function will sleep only if the page is exclusively busied. A
- return value of true indicates that the invoking thread was put to sleep and
- that the object was unlocked. A return value of false indicates that the
- invoking thread did not sleep and the object remains locked. The parameter
- <var class="Fa">msg</var> is a string describing the sleep condition for
- userland tools.</p>
-<p class="Pp" id="vm_page_busied~2">The
- <a class="permalink" href="#vm_page_busied~2"><code class="Fn">vm_page_busied</code></a>()
- function returns non-zero if the current thread busied
- <var class="Fa">m</var> in shared mode. Returns zero otherwise.</p>
-<p class="Pp" id="vm_page_sunbusy">The
- <a class="permalink" href="#vm_page_sunbusy"><code class="Fn">vm_page_sunbusy</code></a>()
- function shared unbusies <var class="Fa">m</var>.</p>
-<p class="Pp" id="vm_page_trysbusy">The
- <a class="permalink" href="#vm_page_trysbusy"><code class="Fn">vm_page_trysbusy</code></a>()
- attempts to shared busy <var class="Fa">m</var>. If the operation cannot
- immediately succeed <code class="Fn">vm_page_trysbusy</code>() returns 0,
- otherwise a non-zero value is returned.</p>
-<p class="Pp" id="vm_page_tryxbusy">The
- <a class="permalink" href="#vm_page_tryxbusy"><code class="Fn">vm_page_tryxbusy</code></a>()
- attempts to exclusive busy <var class="Fa">m</var>. If the operation cannot
- immediately succeed <code class="Fn">vm_page_tryxbusy</code>() returns 0,
- otherwise a non-zero value is returned.</p>
-<p class="Pp" id="vm_page_xbusied">The
- <a class="permalink" href="#vm_page_xbusied"><code class="Fn">vm_page_xbusied</code></a>()
- function returns non-zero if the current thread busied
- <var class="Fa">m</var> in exclusive mode. Returns zero otherwise.</p>
-<p class="Pp" id="vm_page_xunbusy">The
- <a class="permalink" href="#vm_page_xunbusy"><code class="Fn">vm_page_xunbusy</code></a>()
- function exclusive unbusies <var class="Fa">m</var>. Assertions on the busy
- state allow kernels compiled with <code class="Cd">options INVARIANTS</code>
- and <code class="Cd">options INVARIANT_SUPPORT</code> to panic if they are
- not respected.</p>
-<p class="Pp" id="vm_page_assert_sbusied">The
- <a class="permalink" href="#vm_page_assert_sbusied"><code class="Fn">vm_page_assert_sbusied</code></a>()
- function panics if <var class="Fa">m</var> is not shared busied.</p>
-<p class="Pp" id="vm_page_assert_unbusied">The
- <a class="permalink" href="#vm_page_assert_unbusied"><code class="Fn">vm_page_assert_unbusied</code></a>()
- function panics if <var class="Fa">m</var> is not unbusied.</p>
-<p class="Pp" id="vm_page_assert_xbusied">The
- <a class="permalink" href="#vm_page_assert_xbusied"><code class="Fn">vm_page_assert_xbusied</code></a>()
- function panics if <var class="Fa">m</var> is not exclusive busied.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
- ALSO</a></h1>
-<p class="Pp"><a class="Xr">vm_page_aflag(9)</a>,
- <a class="Xr">vm_page_alloc(9)</a>, <a class="Xr">vm_page_deactivate(9)</a>,
- <a class="Xr">vm_page_free(9)</a>, <a class="Xr">vm_page_grab(9)</a>,
- <a class="Xr">vm_page_insert(9)</a>, <a class="Xr">vm_page_lookup(9)</a>,
- <a class="Xr">vm_page_rename(9)</a>, <a class="Xr">VOP_GETPAGES(9)</a></p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">November 11, 2021</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>