Re: [RFC PATCH 0/4] Clean up watchdog handlers

From: Babu Moger
Date: Mon Oct 31 2016 - 17:32:03 EST



On 10/31/2016 4:00 PM, Don Zickus wrote:
On Wed, Oct 26, 2016 at 09:02:19AM -0700, Babu Moger wrote:
This is an attempt to cleanup watchdog handlers. Right now,
kernel/watchdog.c implements both softlockup and hardlockup detectors.
Softlockup code is generic. Hardlockup code is arch specific. Some
architectures don't use hardlockup detectors. They use their own watchdog
detectors. To make both these combination work, we have numerous #ifdefs
in kernel/watchdog.c.

We are trying here to make these handlers independent of each other.
Also provide an interface for architectures to implement their own
handlers. watchdog_nmi_enable and watchdog_nmi_disable will be defined
as weak such that architectures can override its definitions.

Thanks to Don Zickus for his suggestions.
Here is the previous discussion
http://www.spinics.net/lists/sparclinux/msg16441.html
Hi Babu,

I finally got some cycles to poke at this today. Good work. A couple of
suggestions. For bisectability, I am thinking patch2 should be first and
patch1 and patch3 should be combined. Also watchdog_hld.c is going to need
up top:

#define pr_fmt(fmt) "NMI watchdog: " fmt

otherwise the error messages miss the header.

Though I don't think watchdog.c and watchdog_hld.c should have the same
header. A good solution isn't coming to me right now. I will try to run
some tests on this tomorrow.
Don, Thanks for the feedback. Let me know if you run into problems with your tests.
I will start working on the comments.
Thanks
Babu


Cheers,
Don

Babu Moger (4):
watchdog: Remove hardlockup handler references
watchdog: Move shared definitions to nmi.h
watchdog: Move hardlockup detector in separate file
sparc: Implement watchdog_nmi_enable and watchdog_nmi_disable

arch/sparc/kernel/nmi.c | 44 ++++++++-
include/linux/nmi.h | 19 ++++
kernel/Makefile | 1 +
kernel/watchdog.c | 276 ++---------------------------------------------
kernel/watchdog_hld.c | 238 ++++++++++++++++++++++++++++++++++++++++
5 files changed, 312 insertions(+), 266 deletions(-)
create mode 100644 kernel/watchdog_hld.c