diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:59:05 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:59:05 -0400 |
| commit | 1f19f33e45791ea59aed048796fc68672c6723a5 (patch) | |
| tree | 54625fba89e91d1c2177801ec635e8528bba937f /static/netbsd/man9/heartbeat.9 3.html | |
| parent | ac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (diff) | |
docs: Removed Precompiled HTML
Diffstat (limited to 'static/netbsd/man9/heartbeat.9 3.html')
| -rw-r--r-- | static/netbsd/man9/heartbeat.9 3.html | 131 |
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> — - <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 <<a class="In">sys/heartbeat.h</a>></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 - ‘<code class="Li">call heartbeat_dump</code>’.</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> |
