[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1476818050-117332-1-git-send-email-babu.moger@oracle.com>
Date: Tue, 18 Oct 2016 12:14:08 -0700
From: Babu Moger <babu.moger@...cle.com>
To: mingo@...nel.org, akpm@...ux-foundation.org, ak@...ux.intel.com,
jkosina@...e.cz, baiyaowei@...s.chinamobile.com,
dzickus@...hat.com, atomlin@...hat.com, uobergfe@...hat.com,
tj@...nel.org, hidehiro.kawai.ez@...achi.com, johunt@...mai.com,
davem@...emloft.net, sparclinux@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, sam@...nborg.org,
babu.moger@...cle.com
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.
v3:
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.
v2:
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.
v1:
Initial version. Discussion thread here
http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1245427.html
Babu Moger (2):
watchdog: Introduce arch_watchdog_nmi_enable and
arch_watchdog_nmi_disable
sparc: Implement arch_watchdog_nmi_enable and
arch_watchdog_nmi_disable
arch/sparc/kernel/nmi.c | 44 +++++++++++++++++++++++++++++-
kernel/watchdog.c | 69 +++++++++++++++++++++++++++++++---------------
2 files changed, 89 insertions(+), 24 deletions(-)
Powered by blists - more mailing lists