Re: [PATCH v3 0/2] Introduce arch specific nmi enable, disable handlers
On Tue, Oct 18, 2016 at 12:14:08PM -0700, Babu Moger wrote: > 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. Thanks Babu! Tested-and-Reviewed-by: Don Zickus> > 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(-) >
Re: [PATCH v3 0/2] Introduce arch specific nmi enable, disable handlers
On Tue, Oct 18, 2016 at 12:14:08PM -0700, Babu Moger wrote: > 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. Thanks Babu! Tested-and-Reviewed-by: Don Zickus > > 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(-) >
[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(-)
[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(-)