Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1554411 > unrolled thread
| Started by | Rasmus Villemoes <rasmus.villemoes@prevas.dk> |
|---|---|
| First post | 2017-01-09 16:20 +0100 |
| Last post | 2017-01-09 16:20 +0100 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v4 0/3] watchdog: allow setting deadline for opening /dev/watchdogN Rasmus Villemoes <rasmus.villemoes@prevas.dk> - 2017-01-09 16:20 +0100
[PATCH v4 3/3] watchdog: introduce CONFIG_WATCHDOG_OPEN_TIMEOUT Rasmus Villemoes <rasmus.villemoes@prevas.dk> - 2017-01-09 16:20 +0100
| From | Rasmus Villemoes <rasmus.villemoes@prevas.dk> |
|---|---|
| Date | 2017-01-09 16:20 +0100 |
| Subject | [PATCH v4 0/3] watchdog: allow setting deadline for opening /dev/watchdogN |
| Message-ID | <sXJTP-5Pf-17@gated-at.bofh.it> |
If a watchdog driver tells the framework that the device is running, the framework takes care of feeding the watchdog until userspace opens the device. If the userspace application which is supposed to do that never comes up properly, the watchdog is fed indefinitely by the kernel. This can be especially problematic for embedded devices. These patches allow one to set a maximum time for which the kernel will feed the watchdog, thus ensuring that either userspace has come up, or the board gets reset. This allows fallback logic in the bootloader to attempt some recovery (for example, if an automatic update is in progress, it could roll back to the previous version). The patches have been tested on a Raspberry Pi 2 and a Wandboard. v4 is mostly identical to v1. The differences are that the ability to compile out this feature is removed, and the ability to set the default value for the watchdog.open_timeout command line parameter via Kconfig is split into a separate patch. Compared to v2/v3, this drops the ability to set the open_timeout via a device property; I'll leave implementing that to those who actually need it. Rasmus Villemoes (3): watchdog: introduce watchdog_worker_should_ping helper watchdog: introduce watchdog.open_timeout commandline parameter watchdog: introduce CONFIG_WATCHDOG_OPEN_TIMEOUT Documentation/watchdog/watchdog-parameters.txt | 10 +++++++ drivers/watchdog/Kconfig | 9 +++++++ drivers/watchdog/watchdog_dev.c | 37 +++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 4 deletions(-) -- 2.7.4
[toc] | [next] | [standalone]
| From | Rasmus Villemoes <rasmus.villemoes@prevas.dk> |
|---|---|
| Date | 2017-01-09 16:20 +0100 |
| Subject | [PATCH v4 3/3] watchdog: introduce CONFIG_WATCHDOG_OPEN_TIMEOUT |
| Message-ID | <sXJTQ-5Pf-37@gated-at.bofh.it> |
| In reply to | #1554411 |
This allows setting a default value for the watchdog.open_timeout commandline parameter via Kconfig. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> --- Documentation/watchdog/watchdog-parameters.txt | 9 +++++---- drivers/watchdog/Kconfig | 9 +++++++++ drivers/watchdog/watchdog_dev.c | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Documentation/watchdog/watchdog-parameters.txt b/Documentation/watchdog/watchdog-parameters.txt index 2ae0fdf..a688028 100644 --- a/Documentation/watchdog/watchdog-parameters.txt +++ b/Documentation/watchdog/watchdog-parameters.txt @@ -12,10 +12,11 @@ The watchdog core currently understands one parameter, watchdog.open_timeout. This is the maximum time, in milliseconds, for which the watchdog framework will take care of pinging a hardware watchdog until userspace opens the corresponding /dev/watchdogN -device. A value of 0 (the default) means an infinite timeout. Setting -this to a non-zero value can be useful to ensure that either userspace -comes up properly, or the board gets reset and allows fallback logic -in the bootloader to try something else. +device. The defalt value is CONFIG_WATCHDOG_OPEN_TIMEOUT. A value of 0 +means an infinite timeout. Setting this to a non-zero value can be +useful to ensure that either userspace comes up properly, or the board +gets reset and allows fallback logic in the bootloader to try +something else. ------------------------------------------------- diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index acb00b5..8a847f7 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -52,6 +52,15 @@ config WATCHDOG_SYSFS Say Y here if you want to enable watchdog device status read through sysfs attributes. +config WATCHDOG_OPEN_TIMEOUT + int "Timeout value for opening watchdog device" + default 0 + help + The maximum time, in milliseconds, for which the watchdog + framework takes care of pinging a hardware watchdog. A value + of 0 means infinite. The value set here can be overridden by + the commandline parameter "watchdog.open_timeout". + # # General Watchdog drivers # diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 8bc9f24..cc26c4d 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -81,7 +81,7 @@ static struct watchdog_core_data *old_wd_data; static struct workqueue_struct *watchdog_wq; -static unsigned open_timeout; +static unsigned open_timeout = CONFIG_WATCHDOG_OPEN_TIMEOUT; module_param(open_timeout, uint, 0644); static bool watchdog_past_open_deadline(struct watchdog_core_data *data) -- 2.7.4
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web