Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1351077 > unrolled thread

Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure

Started byWim Van Sebroeck <wim@iguana.be>
First post2016-03-06 12:00 +0100
Last post2016-03-08 01:50 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure Wim Van Sebroeck <wim@iguana.be> - 2016-03-06 12:00 +0100
    Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered  by infrastructure Guenter Roeck <linux@roeck-us.net> - 2016-03-07 18:40 +0100
      Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure Wim Van Sebroeck <wim@iguana.be> - 2016-03-07 20:00 +0100
        Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered  by infrastructure Guenter Roeck <linux@roeck-us.net> - 2016-03-08 01:50 +0100

#1351077 — Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure

FromWim Van Sebroeck <wim@iguana.be>
Date2016-03-06 12:00 +0100
SubjectRe: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure
Message-ID<r9EzM-3TO-9@gated-at.bofh.it>
Hi Guenter,

> The watchdog infrastructure is currently purely passive, meaning
> it only passes information from user space to drivers and vice versa.
> 
> Since watchdog hardware tends to have its own quirks, this can result
> in quite complex watchdog drivers. A number of scanarios are especially common.
> 
> - A watchdog is always active and can not be disabled, or can not be disabled
>   once enabled. To support such hardware, watchdog drivers have to implement
>   their own timers and use those timers to trigger watchdog keepalives while
>   the watchdog device is not or not yet opened.
> - A variant of this is the desire to enable a watchdog as soon as its driver
>   has been instantiated, to protect the system while it is still booting up,
>   but the watchdog daemon is not yet running.
> - Some watchdogs have a very short maximum timeout, in the range of just a few
>   seconds. Such low timeouts are difficult if not impossible to support from
>   user space. Drivers supporting such watchdog hardware need to implement
>   a timer function to augment heartbeats from user space.
> 
> This patch set solves the above problems while keeping changes to the
> watchdog core minimal.
> 
> - A new status flag, WDOG_HW_RUNNING, informs the watchdog subsystem that
>   a watchdog is running, and that the watchdog subsystem needs to generate
>   heartbeat requests while the associated watchdog device is closed.
> - A new parameter in the watchdog data structure, max_hw_heartbeat_ms, informs
>   the watchdog subsystem about a maximum hardware heartbeat. The watchdog
>   subsystem uses this information together with the configured timeout
>   and the maximum permitted timeout to determine if it needs to generate
>   additional heartbeat requests.
> 
> As part of this patchset, the semantics of the 'timeout' variable and of
> the WDOG_ACTIVE flag are changed slightly.
> 
> Per the current watchdog kernel API, the 'timeout' variable is supposed
> to reflect the actual hardware watchdog timeout. WDOG_ACTIVE is supposed
> to reflect if the hardware watchdog is running or not.
> 
> Unfortunately, this does not always reflect reality. In drivers which solve
> the above mentioned problems internally, 'timeout' is the watchdog timeout
> as seen from user space, and WDOG_ACTIVE reflects that user space is expected
> to send keepalive requests to the watchdog driver.
> 
> After this patch set is applied, this so far inofficial interpretation
> is the 'official' semantics for the timeout variable and the WDOG_ACTIVE
> flag. In other words, both values no longer reflect the hardware watchdog
> status, but its status as seen from user space.
> 
> Patch #1 makes the set_timeout function optional.
> 
> Patch #2 adds timer functionality to the watchdog core. It solves the problem
> of short maximum hardware heartbeats by augmenting heartbeats triggered from
> user space with internally triggered heartbeats.
> 
> Patch #3 adds functionality to generate heartbeats while the watchdog device
> is closed. It handles situation where where the watchdog is running after
> the driver has been instantiated, but the device is not yet opened,
> and post-close situations necessary if a watchdog can not be stopped.
> 
> Patch #4 makes the stop function optional.
> 
> Patch #5 adds code to ensure that the minimum time between heartbeats meets
> constraints provided by the watchdog driver.
> 
> Patch #6 to #10 are example conversions of some watchdog drivers.
> Out of those, patches #6 (dw_wdt) and #7 (imx2) have been tested.
> Patches #8 to #10 will require testing and are marked as RFT.
> 
> The patch series is also available in branch watchdog-timer of
> git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git.
> The series is curently based on top of v4.5-rc5.
> 
> The patch series was inspired by an earlier patch set from Timo Kokonnen.
> 
> v8:
> - max_hw_timeout_ms -> max_hw_heartbeat_ms
> - Rebased to v4.5-rc5
> - The patch to make the set_timeout function optional is now the first
>   patch of the series.
> - Separate code making the stop function optional into a separate patch.
> - Dropped all Acked-by: and Tested-by: tags. Even though there are no
>   functional changes, I concluded that the changes are too substantial
>   to warrant maintaining previously provided tags.
>   Note: while the patch series was rearranged, correctness was ensured
>   by implementing the max_hw_timeout_ms -> max_hw_heartbeat_ms changes
>   separately on top of the original series and comparing the results.
> v7:
> - Rebased to v4.5-rc1.
> - Moved new variables to local data structure
> - Fixed typos in documentation (hw_max_timeout_ms -> max_hw_timeout_ms).
> - Enforce that max_hw_timeout_ms must be set if the stop function is
>   not implemented by a driver.
> - Set max_hw_timeout_ms in converted drivers.
> v6:
> - Added patch #9, converting the dw_wdt driver.
> - Set last_keepalive more accurately when starting the watchdog.
> - Rebased to v4.4-rc2.
> - Renamed WDOG_RUNNING to WDOG_HW_RUNNING and watchdog_running() to
>   watchdog_hw_running().
> v5:
> - Patches #1 and #2 of the original patch series are now in mainline
>   and have been dropped.
> - Rebased to v4.4-rc1. 
> - Added patch to simplify watchdog_update_worker().
> v4:
> - Rebased to v4.3-rc3
> - Rearranged patch sequence
> - Dropped gpio driver patch. The driver was changed since v4.2,
>   and merging the changes turned out to be too difficult.
> - Various other cleanups as listed in individual patches
> v3:
> - Rebased to v4.2-rc8
> - Reworked and cleaned up some of the functions.
> - No longer call the worker update function if all that is needed is to stop
>   the worker.
> - max_timeout will now be ignored if max_hw_timeout_ms is provided.
> - Added patch 9/9.
> v2:
> - Rebased to v4.2-rc5
> - Improved and hopefully clarified documentation.
> - Rearranged variables in struct watchdog_device such that internal variables
>   come last.
> - The code now ensures that the watchdog times out <timeout> seconds after
>   the most recent keepalive sent from user space.
> - The internal keepalive now stops silently and no longer generates a
>   warning message. Reason is that it will now stop early, while there
>   may still be a substantial amount of time for keepalives from user space
>   to arrive. If such keepalives arrive late (for example if user space
>   is configured to send keepalives just a few seconds before the watchdog
>   times out), the message would just be noise and not provide any value.

Patches 1 till 7 of this series has been added to linux-watchdog-next.

Kind regards,
Wim.

[toc] | [next] | [standalone]


#1351827 — Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure

FromGuenter Roeck <linux@roeck-us.net>
Date2016-03-07 18:40 +0100
SubjectRe: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure
Message-ID<ra7ip-5Vi-5@gated-at.bofh.it>
In reply to#1351077
Hi Wim,

On Sun, Mar 06, 2016 at 11:49:56AM +0100, Wim Van Sebroeck wrote:
> Hi Guenter,
> 
> > The watchdog infrastructure is currently purely passive, meaning
> > it only passes information from user space to drivers and vice versa.
> > 
[ ... ]
> 
> Patches 1 till 7 of this series has been added to linux-watchdog-next.
> 
Thanks a lot!

Guenter

[toc] | [prev] | [next] | [standalone]


#1351883

FromWim Van Sebroeck <wim@iguana.be>
Date2016-03-07 20:00 +0100
Message-ID<ra8xP-6CZ-1@gated-at.bofh.it>
In reply to#1351827
Hi Guenter,

> Hi Wim,
> 
> On Sun, Mar 06, 2016 at 11:49:56AM +0100, Wim Van Sebroeck wrote:
> > Hi Guenter,
> > 
> > > The watchdog infrastructure is currently purely passive, meaning
> > > it only passes information from user space to drivers and vice versa.
> > > 
> [ ... ]
> > 
> > Patches 1 till 7 of this series has been added to linux-watchdog-next.
> > 
> Thanks a lot!

Did you receive any feedback/test-results on patches 8 till 10 ?

Kind regards,
Wim.

[toc] | [prev] | [next] | [standalone]


#1352490 — Re: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure

FromGuenter Roeck <linux@roeck-us.net>
Date2016-03-08 01:50 +0100
SubjectRe: [PATCH v8 0/10] watchdog: Add support for keepalives triggered by infrastructure
Message-ID<rae0z-1QO-47@gated-at.bofh.it>
In reply to#1351883
On Mon, Mar 07, 2016 at 07:50:23PM +0100, Wim Van Sebroeck wrote:
> Hi Guenter,
> 
> > Hi Wim,
> > 
> > On Sun, Mar 06, 2016 at 11:49:56AM +0100, Wim Van Sebroeck wrote:
> > > Hi Guenter,
> > > 
> > > > The watchdog infrastructure is currently purely passive, meaning
> > > > it only passes information from user space to drivers and vice versa.
> > > > 
> > [ ... ]
> > > 
> > > Patches 1 till 7 of this series has been added to linux-watchdog-next.
> > > 
> > Thanks a lot!
> 
> Did you receive any feedback/test-results on patches 8 till 10 ?
> 
No, unfortunately not. I think I'll ping some of those involved in the driver
development, but I'll do it after the -rc is out. No need to rush with those
now.

Thanks,
Guenter

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web