Thread (70 messages) 70 messages, 7 authors, 2018-06-21

Re: [RFC PATCH 12/23] kernel/watchdog: Introduce a struct for NMI watchdog operations

From: Ricardo Neri <hidden>
Date: 2018-06-14 01:34:59
Also in: linux-iommu, lkml, sparclinux

On Wed, Jun 13, 2018 at 09:52:25PM +1000, Nicholas Piggin wrote:
On Wed, 13 Jun 2018 11:26:49 +0200 (CEST)
Thomas Gleixner [off-list ref] wrote:
quoted
On Wed, 13 Jun 2018, Peter Zijlstra wrote:
quoted
On Wed, Jun 13, 2018 at 05:41:41PM +1000, Nicholas Piggin wrote:  
quoted
On Tue, 12 Jun 2018 17:57:32 -0700
Ricardo Neri [off-list ref] wrote:
  
quoted
Instead of exposing individual functions for the operations of the NMI
watchdog, define a common interface that can be used across multiple
implementations.

The struct nmi_watchdog_ops is defined for such operations. These initial
definitions include the enable, disable, start, stop, and cleanup
operations.

Only a single NMI watchdog can be used in the system. The operations of
this NMI watchdog are accessed via the new variable nmi_wd_ops. This
variable is set to point the operations of the first NMI watchdog that
initializes successfully. Even though at this moment, the only available
NMI watchdog is the perf-based hardlockup detector. More implementations
can be added in the future.  
Cool, this looks pretty nice at a quick glance. sparc and powerpc at
least have their own NMI watchdogs, it would be good to have those
converted as well.  
Yeah, agreed, this looks like half a patch.  
Though I'm not seeing the advantage of it. That kind of NMI watchdogs are
low level architecture details so having yet another 'ops' data structure
with a gazillion of callbacks, checks and indirections does not provide
value over the currently available weak stubs.
The other way to go of course is librify the perf watchdog and make an
x86 watchdog that selects between perf and hpet... I also probably
prefer that for code such as this, but I wouldn't strongly object to
ops struct if I'm not writing the code. It's not that bad is it?
My motivation to add the ops was that the hpet and perf watchdog share
significant portions of code. I could look into creating the library for
common code and relocate the hpet watchdog into arch/x86 for the hpet-
specific parts.

Thanks and BR,
Ricardo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help