diff options
author | Curtis Klein <curtis.klein@hpe.com> | 2021-06-28 00:36:49 +0200 |
---|---|---|
committer | Luca Boccassi <bluca@debian.org> | 2022-02-22 18:19:54 +0100 |
commit | 5717062e93ec6f128188d2ef4d1399623995bc63 (patch) | |
tree | d0810c996144139af9bd4eade4b625d055d2308b /man | |
parent | ci: fix clang-13 installation (diff) | |
download | systemd-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.xml | 12 | ||||
-rw-r--r-- | man/org.freedesktop.systemd1.xml | 7 | ||||
-rw-r--r-- | man/systemd-system.conf.xml | 34 |
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 |