[lkml]   [2016]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v3 0/2] Introduce arch specific nmi enable, disable handlers
During our testing we noticed that nmi watchdogs in sparc could not be disabled or
enabled dynamically using sysctl/proc interface. Sparc uses its own arch specific
nmi watchdogs. There is a sysctl and proc interface(proc/sys/kernel/nmi_watchdog)
to enable/disable nmi watchdogs. However, that is not working for sparc. There
is no interface to feed this parameter to arch specific nmi watchdogs.

These patches extend the same sysctl/proc interface to enable or disable
these arch specific nmi watchdogs dynamically. Introduced new functions
arch_watchdog_nmi_enable and arch_watchdog_nmi_disable which can be implemented
in arch specific handlers.
If you think there is a better way to do this. Please advice.

Tested on sparc. Compile tested on x86.

Made one more change per Don Zickus comments.
Moved failure path messages to into generic code inside watchdog_nmi_enable.
Also added matching prints in sparc to warn about the failure.

a)Sam Ravnborg's comments about making the definitions visible.
With the new approach we dont need those definitions((NMI_WATCHDOG_ENABLED,
SOFT_WATCHDOG_ENABLED etc..) outside watchdog.c. So no action.

b) Made changes per Don Zickus comments.
Don, I could not use your patches as is. Reason is sparc does not define
CONFIG_HARDLOCKUP_DETECTOR. So, defining default __weak function did not
work for me. However, I have used your idea to define __weak functions
arch_watchdog_nmi_enable and arch_watchdog_nmi_disable when CONFIG_HARDLOCKUP_DETECTOR
is not defined. I feel this should have very less impact on the races you are
concerned about. Please take a look. Feel free to suggest.

Patch2 changes: I had to introduce new variable nmi_init_done to synchronize
watchdog thread and kernel init thread.

Initial version. Discussion thread here

Babu Moger (2):
watchdog: Introduce arch_watchdog_nmi_enable and
sparc: Implement arch_watchdog_nmi_enable and

arch/sparc/kernel/nmi.c | 44 +++++++++++++++++++++++++++++-
kernel/watchdog.c | 69 +++++++++++++++++++++++++++++++---------------
2 files changed, 89 insertions(+), 24 deletions(-)

 \ /
  Last update: 2016-10-18 21:15    [W:0.164 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site