From: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
To: Wolfram Sang <wsa@the-dreams.de>, <linux-watchdog@vger.kernel.org>
Cc: <linux-renesas-soc@vger.kernel.org>,
Guenter Roeck <linux@roeck-us.net>,
Robin Gong <b38343@freescale.com>
Subject: Re: [PATCH 1/7] watchdog: add watchdog pretimeout framework
Date: Thu, 26 May 2016 17:11:39 +0300 [thread overview]
Message-ID: <5747041B.2050707@mentor.com> (raw)
In-Reply-To: <1464183151-4912-2-git-send-email-wsa@the-dreams.de>
Hi Wolfram,
On 25.05.2016 16:32, Wolfram Sang wrote:
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
>
> The change adds a simple watchdog pretimeout framework infrastructure,
> its purpose is to allow users to select a desired handling of watchdog
> pretimeout events, which may be generated by a watchdog driver.
>
> By design every watchdog pretimeout governor may be compiled as a
> kernel module, a user selects a default watchdog pretimeout
> governor during compilation stage and can select another governor in
> runtime.
>
> Watchdogs with WDIOF_PRETIMEOUT capability now have two device
> attributes in sysfs: read/write pretimeout_governor attribute and read
> only pretimeout_available_governors attribute.
>
> Watchdogs with no WDIOF_PRETIMEOUT capability has no changes in
> sysfs.
>
> Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
>
> Changes since Vladimir's last version:
>
> * rebased
> adapt to the internal data reorganization, especially the now private
> struct device *dev
> * dropped can_sleep support!
> The additional lock, list, and workqueue made the code quite complex. The
> only user was the userspace governor which can be reworked to let the
> watchdog device code do the bottom half. In addition, I am not fully
> convinced sending a uevent is the proper thing to do, but this needs to
> be discussed in another thread. Removing this support makes the code much
> easier to follow (locking!), saves 30% of LoC + a list + a workqueue.
The thing is that I'm particularly interested in
1) sleeping governors,
2) userspace notification of any appropriate kind, but preferably not by
adding a clumsy .poll callback, uevent is the best IMHO.
The userspace sleeping governor is the only one proposed for a mainline,
however the whole idea of having a framework is to allow users to write
their own private governors, and that's exactly what we need and use.
So the original complexity has its state-of-the-art grounds, and for
sake of getting a solid picture for reviewers and users it is better to
introduce sleeping functionality right from the beginning. I know it
is quite complex, probably it might be better to add it to the series
as a separate patch?
> * moved pretimeout registration from watchdog_core to watchdog_dev
> Let's handle it exactly where the device is created, so we have access to
> the now private device pointer for adding the sysfs files.
> * don't export watchdog_(un)register_pretimeout since they are linked to the
> core anyhow
> * whitespace cleanups
>
Thanks for pushing it, but do you think that the authorship of the
code can be preserved?
Feel free to ask me to rebase the change and so on, patch review procedure
is well established and I'm pretty sure I can cope with it.
I believe the main problem with the original code since the time when
rebase was not required is that it didn't receive any formal technical
review from Guenter or Wim, but I'm glad to know that someone else is
interested in it.
Merge window is closing, so it's good time for me to rebase the change
and resend it, do you have any objections?
> drivers/watchdog/Kconfig | 8 +
> drivers/watchdog/Makefile | 6 +-
> drivers/watchdog/watchdog_dev.c | 8 +
> drivers/watchdog/watchdog_pretimeout.c | 269 +++++++++++++++++++++++++++++++++
> drivers/watchdog/watchdog_pretimeout.h | 35 +++++
> include/linux/watchdog.h | 10 ++
> 6 files changed, 334 insertions(+), 2 deletions(-)
> create mode 100644 drivers/watchdog/watchdog_pretimeout.c
> create mode 100644 drivers/watchdog/watchdog_pretimeout.h
>
--
With best wishes,
Vladimir
next prev parent reply other threads:[~2016-05-26 14:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-25 13:32 [PATCH 0/7] watchdog: add pretimeout support Wolfram Sang
2016-05-25 13:32 ` [PATCH 1/7] watchdog: add watchdog pretimeout framework Wolfram Sang
2016-05-26 14:11 ` Vladimir Zapolskiy [this message]
2016-05-26 16:41 ` Wolfram Sang
2016-05-26 22:37 ` Guenter Roeck
2016-06-05 9:48 ` Wolfram Sang
2016-06-05 20:25 ` Vladimir Zapolskiy
2016-05-25 13:32 ` [PATCH 2/7] watchdog: pretimeout: add panic pretimeout governor Wolfram Sang
2016-05-25 13:32 ` [PATCH 3/7] watchdog: pretimeout: add noop " Wolfram Sang
2016-05-25 13:32 ` [PATCH 4/7] watchdog: documentation: squash paragraphs about 'no set_timeout' Wolfram Sang
2016-05-25 13:32 ` [PATCH 5/7] watchdog: add pretimeout support to the core Wolfram Sang
2016-05-25 13:32 ` [PATCH 6/7] fs: compat_ioctl: add pretimeout functions for watchdogs Wolfram Sang
2016-05-25 13:32 ` [PATCH 7/7] watchdog: softdog: implement pretimeout support Wolfram Sang
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=5747041B.2050707@mentor.com \
--to=vladimir_zapolskiy@mentor.com \
--cc=b38343@freescale.com \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=wsa@the-dreams.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.