summaryrefslogtreecommitdiffstats
path: root/man
diff options
context:
space:
mode:
authorCurtis Klein <curtis.klein@hpe.com>2021-06-28 00:36:49 +0200
committerLuca Boccassi <bluca@debian.org>2022-02-22 18:19:54 +0100
commit5717062e93ec6f128188d2ef4d1399623995bc63 (patch)
treed0810c996144139af9bd4eade4b625d055d2308b /man
parentci: fix clang-13 installation (diff)
downloadsystemd-5717062e93ec6f128188d2ef4d1399623995bc63.tar.xz
systemd-5717062e93ec6f128188d2ef4d1399623995bc63.zip
watchdog: Add watchdog pretimeout support
Add support for managing and configuring watchdog pretimeout values if the watchdog hardware supports it. The ping interval is adjusted to account for a pretimeout so that it will still ping at half the timeout interval before a pretimeout event would be triggered. By default the pretimeout defaults to 0s or disabled. The RuntimeWatchdogPreSec config option is added to allow the pretimeout to be specified (similar to RuntimeWatchdogSec). The RuntimeWatchdogPreUSec dbus property is added to override the pretimeout value at runtime (similar to RuntimeWatchdogUSec). Setting the pretimeout to 0s will disable the pretimeout.
Diffstat (limited to 'man')
-rw-r--r--man/kernel-command-line.xml12
-rw-r--r--man/org.freedesktop.systemd1.xml7
-rw-r--r--man/systemd-system.conf.xml34
3 files changed, 53 insertions, 0 deletions
diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml
index d6123491f3..9b04aa1706 100644
--- a/man/kernel-command-line.xml
+++ b/man/kernel-command-line.xml
@@ -429,6 +429,18 @@
</varlistentry>
<varlistentry>
+ <term><varname>systemd.watchdog_pre_sec=</varname></term>
+
+ <listitem>
+ <para>Overrides the watchdog pre-timeout settings otherwise configured with
+ <varname>RuntimeWatchdogPreSec=</varname>. Takes a time value (if no unit is specified, seconds is the
+ implicitly assumed time unit) or the special strings <literal>off</literal> or
+ <literal>default</literal>. For details, see
+ <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><varname>systemd.cpu_affinity=</varname></term>
<listitem>
diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml
index 8171241e4e..8976521589 100644
--- a/man/org.freedesktop.systemd1.xml
+++ b/man/org.freedesktop.systemd1.xml
@@ -402,6 +402,9 @@ node /org/freedesktop/systemd1 {
readwrite t RuntimeWatchdogUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@org.freedesktop.systemd1.Privileged("true")
+ readwrite t RuntimeWatchdogPreUSec = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ @org.freedesktop.systemd1.Privileged("true")
readwrite t RebootWatchdogUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@org.freedesktop.systemd1.Privileged("true")
@@ -650,6 +653,8 @@ node /org/freedesktop/systemd1 {
<!--property RuntimeWatchdogUSec is not documented!-->
+ <!--property RuntimeWatchdogPreUSec is not documented!-->
+
<!--property RebootWatchdogUSec is not documented!-->
<!--property KExecWatchdogUSec is not documented!-->
@@ -1052,6 +1057,8 @@ node /org/freedesktop/systemd1 {
<variablelist class="dbus-property" generated="True" extra-ref="RuntimeWatchdogUSec"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="RuntimeWatchdogPreUSec"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="RebootWatchdogUSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="KExecWatchdogUSec"/>
diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml
index 3805a010e2..01eff0839e 100644
--- a/man/systemd-system.conf.xml
+++ b/man/systemd-system.conf.xml
@@ -178,6 +178,40 @@
</varlistentry>
<varlistentry>
+ <term><varname>RuntimeWatchdogPreSec=</varname></term>
+
+ <listitem><para>Configure the hardware watchdog device pre-timeout value.
+ Takes a timeout value in seconds (or in other time units similar to
+ <varname>RuntimeWatchdogSec=</varname>). A watchdog pre-timeout is a
+ notification generated by the watchdog before the watchdog reset might
+ occur in the event the watchdog has not been serviced. This notification
+ is handled by the kernel and can be configured to take an action (i.e.
+ generate a kernel panic) using the
+ <filename>/sys/class/watchdog/watchdog0/pretimeout_governor</filename>
+ sysfs file for your watchdog device. The available actions (or
+ governors) are listed in the
+ <filename>/sys/class/watchdog/watchdog0/pretimeout_available_governors</filename>
+ sysfs file for your watchdog device. The default action for the
+ pre-timeout event is to log a kernel message but that can be changed in
+ the kernel's configuration. Not all watchdog hardware or drivers support
+ generating a pre-timeout and depending on the state of the system, the
+ kernel may be unable to take the configured action before the watchdog
+ reboot. The watchdog will be configured to generate the pre-timeout event
+ at the amount of time specified by <varname>RuntimeWatchdogPreSec=</varname>
+ before the runtime watchdog timeout (set by
+ <varname>RuntimeWatchdogSec=</varname>). For example, if the we have
+ <varname>RuntimeWatchdogSec=30</varname> and
+ <varname>RuntimeWatchdogPreSec=10</varname>, then the pre-timeout event
+ will occur if the watchdog has not pinged for 20s (10s before the
+ watchdog would fire). By default, <varname>RuntimeWatchdogPreSec=</varname>
+ defaults to 0 (off). The value set for <varname>RuntimeWatchdogPreSec=</varname>
+ must be smaller than the timeout value for <varname>RuntimeWatchdogSec=</varname>.
+ This setting has no effect if a hardware watchdog is not available or the
+ hardware watchdog does not support a pre-timeout and will be ignored by the
+ kernel if the setting is greater than the actual watchdog timeout.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><varname>WatchdogDevice=</varname></term>
<listitem><para>Configure the hardware watchdog device that the