diff options
Diffstat (limited to 'static/freebsd/man9/vm_page_busy.9 4.html')
| -rw-r--r-- | static/freebsd/man9/vm_page_busy.9 4.html | 178 |
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> — - <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 - <<a class="In">sys/param.h</a>></code> - <br/> - <code class="In">#include <<a class="In">vm/vm.h</a>></code> - <br/> - <code class="In">#include <<a class="In">vm/vm_page.h</a>></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> |
