summaryrefslogtreecommitdiff
path: root/static/netbsd/man9/heartbeat.9 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man9/heartbeat.9 3.html')
-rw-r--r--static/netbsd/man9/heartbeat.9 3.html131
1 files changed, 0 insertions, 131 deletions
diff --git a/static/netbsd/man9/heartbeat.9 3.html b/static/netbsd/man9/heartbeat.9 3.html
deleted file mode 100644
index 4a279c6a..00000000
--- a/static/netbsd/man9/heartbeat.9 3.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">HEARTBEAT(9)</td>
- <td class="head-vol">Kernel Developer's Manual</td>
- <td class="head-rtitle">HEARTBEAT(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">heartbeat</code> &#x2014;
- <span class="Nd">periodic checks to ensure CPUs are making
- progress</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="Cd">options HEARTBEAT</code>
- <br/>
- <code class="Cd">options HEARTBEAT_MAX_PERIOD_DEFAULT=15</code></p>
-<p class="Pp">
- <br/>
- <code class="In">#include &lt;<a class="In">sys/heartbeat.h</a>&gt;</code></p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">heartbeat_start</code>(<var class="Fa" style="white-space: nowrap;">void</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">heartbeat</code>(<var class="Fa" style="white-space: nowrap;">void</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">heartbeat_suspend</code>(<var class="Fa" style="white-space: nowrap;">void</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">heartbeat_resume</code>(<var class="Fa" style="white-space: nowrap;">void</var>);</p>
-<p class="Pp"><code class="Fd">#ifdef DDB</code></p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">heartbeat_dump</code>(<var class="Fa" style="white-space: nowrap;">void</var>);</p>
-<p class="Pp"><code class="Fd">#endif</code></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">The <code class="Nm">heartbeat</code> subsystem verifies that soft
- interrupts (<a class="Xr">softint(9)</a>) and the system
- <a class="Xr">timecounter(9)</a> are making progress over time, and panics
- if they appear stuck.</p>
-<p class="Pp">The number of seconds before <code class="Nm">heartbeat</code>
- panics without progress is controlled by the sysctl knob
- <code class="Li">kern.heartbeat.max_period</code>, which defaults to 15. If
- set to zero, heartbeat checks are disabled.</p>
-<p class="Pp" id="heartbeat">The periodic hardware timer interrupt handler calls
- <a class="permalink" href="#heartbeat"><code class="Fn">heartbeat</code></a>()
- every tick on each CPU. Once per second (i.e., every <a class="Xr">hz(9)</a>
- ticks), <code class="Fn">heartbeat</code>() schedules a soft interrupt at
- priority <code class="Dv">SOFTINT_CLOCK</code> to advance the current CPU's
- view of <a class="Xr">time_uptime(9)</a>.</p>
-<p class="Pp" id="heartbeat~2"><a class="permalink" href="#heartbeat~2"><code class="Fn">heartbeat</code></a>()
- checks whether <a class="Xr">time_uptime(9)</a> has changed, to see if
- either the <a class="Xr">timecounter(9)</a> or soft interrupts on the
- current CPU are stuck. If it hasn't advanced within
- <code class="Li">kern.heartbeat.max_period</code> seconds worth of ticks, or
- if it has updated and the current CPU's view of it hasn't been updated by
- more than <code class="Li">kern.heartbeat.max_period</code> seconds, then
- <code class="Fn">heartbeat</code>() panics.</p>
-<p class="Pp" id="heartbeat~3"><a class="permalink" href="#heartbeat~3"><code class="Fn">heartbeat</code></a>()
- also checks whether the next online CPU has advanced its view of
- <a class="Xr">time_uptime(9)</a>, to see if soft interrupts (including
- <a class="Xr">callout(9)</a>) on that CPU are stuck. If it hasn't updated
- within <code class="Li">kern.heartbeat.max_period</code> seconds,
- <code class="Fn">heartbeat</code>() sends an <a class="Xr">ipi(9)</a> to
- panic on that CPU. If that CPU has not acknowledged the
- <a class="Xr">ipi(9)</a> within one second,
- <code class="Fn">heartbeat</code>() panics on the current CPU instead.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FUNCTIONS"><a class="permalink" href="#FUNCTIONS">FUNCTIONS</a></h1>
-<dl class="Bl-tag">
- <dt><code class="Fn">heartbeat</code>()</dt>
- <dd>Check for timecounter and soft interrupt progress on this CPU and on
- another CPU, and schedule a soft interrupt to advance this CPU's view of
- timecounter progress.
- <p class="Pp">Called by <a class="Xr">hardclock(9)</a> periodically.</p>
- </dd>
- <dt id="heartbeat_dump"><a class="permalink" href="#heartbeat_dump"><code class="Fn">heartbeat_dump</code></a>()</dt>
- <dd>Print each CPU's heartbeat counter, uptime cache, and uptime cache
- timestamp (in units of heartbeats) to the console.
- <p class="Pp">Can be invoked from <a class="Xr">ddb(9)</a> by
- &#x2018;<code class="Li">call heartbeat_dump</code>&#x2019;.</p>
- </dd>
- <dt id="heartbeat_resume"><a class="permalink" href="#heartbeat_resume"><code class="Fn">heartbeat_resume</code></a>()</dt>
- <dd>Resume heartbeat monitoring of the current CPU.
- <p class="Pp">Called after a CPU has started running but before it has been
- marked online.</p>
- </dd>
- <dt id="heartbeat_start"><a class="permalink" href="#heartbeat_start"><code class="Fn">heartbeat_start</code></a>()</dt>
- <dd>Start monitoring heartbeats systemwide.
- <p class="Pp" id="main">Called by
- <a class="permalink" href="#main"><code class="Fn">main</code></a>() in
- <span class="Pa">sys/kern/init_main.c</span> as soon as soft interrupts
- can be established.</p>
- </dd>
- <dt id="heartbeat_suspend"><a class="permalink" href="#heartbeat_suspend"><code class="Fn">heartbeat_suspend</code></a>()</dt>
- <dd>Suspend heartbeat monitoring of the current CPU.
- <p class="Pp">Called after the current CPU has been marked offline but
- before it has stopped running.</p>
- </dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="CODE_REFERENCES"><a class="permalink" href="#CODE_REFERENCES">CODE
- REFERENCES</a></h1>
-<p class="Pp">The <code class="Nm">heartbeat</code> subsystem is implemented in
- <span class="Pa">sys/kern/kern_heartbeat.c</span>.</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">swwdog(4)</a>, <a class="Xr">wdogctl(8)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The <code class="Nm">heartbeat</code> subsystem first appeared in
- <span class="Ux">NetBSD 11.0</span>.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">July 6, 2023</td>
- <td class="foot-os">NetBSD 10.1</td>
- </tr>
-</table>