From: Guenter Roeck <linux@roeck-us.net>
To: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Timo Kokkonen <timo.kokkonen@offcode.fi>,
linux-arm-kernel@lists.infradead.org,
linux-watchdog@vger.kernel.org, nicolas.ferre@atmel.com,
alexandre.belloni@free-electrons.com
Subject: Re: [PATCH 2/2] at91sam9_wdt: Allow watchdog to reset device at early boot
Date: Wed, 18 Feb 2015 06:50:44 -0800 [thread overview]
Message-ID: <54E4A6C4.4070706@roeck-us.net> (raw)
In-Reply-To: <20150218151713.7a718311@bbrezillon>
On 02/18/2015 06:17 AM, Boris Brezillon wrote:
> Hi Guenter,
>
> On Wed, 18 Feb 2015 05:59:01 -0800
> Guenter Roeck <linux@roeck-us.net> wrote:
>
>> On 02/18/2015 04:57 AM, Timo Kokkonen wrote:
>>> By default the driver will start a kernel timer which keeps on kicking
>>> the watchdog HW until user space has opened the watchdog
>>> device. Usually this is desirable as the watchdog HW is running by
>>> default and the user space may not have any watchdog daemon running at
>>> all.
>>>
>>> However, on production systems it may be mandatory that also early
>>> crashes and lockups will lead to a watchdog reset, even if they happen
>>> before the user space has opened the watchdog device.
>>>
>>> To resolve the issue, add a new device tree property
>>> "early-timeout-sec" which will let the kernel timer to ping the
>>> watchdog HW only as long as the specified timeout permits. The default
>>> is still to use kernel timer, but more strict behavior can be enabled
>>> via the device tree property.
>>>
>>> Signed-off-by: Timo Kokkonen <timo.kokkonen@offcode.fi>
>>> ---
>>> Documentation/devicetree/bindings/watchdog/watchdog.txt | 7 +++++++
>>> drivers/watchdog/at91sam9_wdt.c | 9 ++++++++-
>>> 2 files changed, 15 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/watchdog/watchdog.txt b/Documentation/devicetree/bindings/watchdog/watchdog.txt
>>> index 7e3686c..32647cf 100644
>>> --- a/Documentation/devicetree/bindings/watchdog/watchdog.txt
>>> +++ b/Documentation/devicetree/bindings/watchdog/watchdog.txt
>>> @@ -4,9 +4,16 @@ using these definitions.
>>>
>>> Optional properties:
>>> - timeout-sec: Contains the watchdog timeout in seconds.
>>> +- early-timeout-sec: If present, specifies a timeout value in seconds
>>> + that the driver keeps on ticking the watchdog HW on behalf of user
>>> + space. Once this timeout expires watchdog is left to expire in
>>> + timeout-sec seconds. If this propery is set to zero, watchdog is
>>> + started (or left running) so that a reset occurs in timeout-sec
>>> + since the watchdog was started.
>>>
>>> Example:
>>>
>>> watchdog {
>>> timeout-sec = <60>;
>>> + early-timeout-sec = <120>;
>>
>> That is not a generic property as you defined it; if so,
>> it would have to be implemented in the watchdog core code,
>> not in the at91 code. You'll have to document it in the bindings
>> description for at91sam9_wdt.
>
> Then, if this is a controller specific property, it should be defined
> with the 'atmel,' prefix.
> We're kind of looping here: the initial discussion was "is there a need
> for this property to be a generic one ?", and now you're saying no,
> while you previously left the door opened.
>
> Tomi is proposing a generic approach, as you asked him to. I agree that
> parsing the property in core code and making its value part of the
> generic watchdog struct makes sense (that's what I proposed to Tomi a
> few weeks ago).
>
Hmm ... the problem here is that the property description creates the
assumption or expectation that the property is used if defined,
which is not the case.
I am not sure how to best resolve this. Maybe a comment in the property
description stating that implementation of is device (driver) dependent ?
After all, that is true for the timeout-sec property as well.
Thanks,
Guenter
next prev parent reply other threads:[~2015-02-18 14:50 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-23 10:40 [PATCH] at91sam9_wdt: Allow watchdog to reset device at early boot Timo Kokkonen
2014-11-12 8:20 ` Timo Kokkonen
2014-11-13 9:12 ` Nicolas Ferre
2014-11-14 8:40 ` Timo Kokkonen
2014-11-21 12:23 ` Timo Kokkonen
2014-11-27 6:53 ` Timo Kokkonen
2014-11-27 9:22 ` Nicolas Ferre
2014-11-27 17:23 ` Guenter Roeck
2014-11-27 19:06 ` Boris Brezillon
2014-11-27 19:31 ` Guenter Roeck
2014-11-28 0:30 ` Alexandre Belloni
2014-11-28 6:40 ` Timo Kokkonen
2014-11-27 19:00 ` Boris Brezillon
2014-11-28 6:42 ` Timo Kokkonen
2014-12-05 12:57 ` Timo Kokkonen
2014-12-05 14:12 ` Boris Brezillon
2014-12-05 18:42 ` Timo Kokkonen
2014-12-05 19:02 ` Guenter Roeck
2014-12-05 20:32 ` Timo Kokkonen
2014-12-05 21:39 ` Guenter Roeck
2014-12-06 10:11 ` Timo Kokkonen
2015-01-13 14:53 ` Guenter Roeck
2015-01-14 6:09 ` Timo Kokkonen
2015-02-18 12:57 ` [PATCHv3 0/2] watchdog: Introduce "early-timeout-sec" property Timo Kokkonen
2015-02-18 12:57 ` [PATCH 1/2] devicetree: Document generic watchdog properties Timo Kokkonen
2015-02-18 12:57 ` [PATCH 2/2] at91sam9_wdt: Allow watchdog to reset device at early boot Timo Kokkonen
2015-02-18 13:21 ` Boris Brezillon
2015-02-18 13:59 ` Guenter Roeck
2015-02-18 14:17 ` Boris Brezillon
2015-02-18 14:50 ` Guenter Roeck [this message]
2015-02-18 16:00 ` Alexandre Belloni
2015-02-18 17:50 ` Guenter Roeck
2015-02-18 20:21 ` Boris Brezillon
2015-02-19 6:02 ` Timo Kokkonen
2015-02-18 21:11 ` Rob Herring
2015-02-19 6:14 ` Timo Kokkonen
2015-02-20 14:06 ` Rob Herring
2015-02-20 16:28 ` Guenter Roeck
2015-02-20 19:43 ` Boris Brezillon
2015-02-20 20:04 ` Guenter Roeck
2015-02-20 7:48 ` Jean-Christophe PLAGNIOL-VILLARD
2015-02-20 7:51 ` Boris Brezillon
2015-02-20 16:33 ` Jean-Christophe PLAGNIOL-VILLARD
2015-02-20 17:16 ` Boris Brezillon
2015-02-20 18:06 ` Guenter Roeck
2015-02-23 7:29 ` Timo Kokkonen
2015-02-23 8:51 ` Boris Brezillon
2015-02-23 9:11 ` Timo Kokkonen
2015-02-23 16:19 ` Guenter Roeck
2015-02-23 17:10 ` Rob Herring
2015-02-23 17:43 ` Guenter Roeck
2015-02-20 8:00 ` Timo Kokkonen
2015-02-20 16:09 ` Guenter Roeck
2015-02-18 13:16 ` [PATCHv3 0/2] watchdog: Introduce "early-timeout-sec" property Boris Brezillon
2015-02-18 13:51 ` Timo Kokkonen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54E4A6C4.4070706@roeck-us.net \
--to=linux@roeck-us.net \
--cc=alexandre.belloni@free-electrons.com \
--cc=boris.brezillon@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=nicolas.ferre@atmel.com \
--cc=timo.kokkonen@offcode.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox