Re: [RFC PATCH 12/23] kernel/watchdog: Introduce a struct for NMI watchdog operations
From: Thomas Gleixner <hidden>
Date: 2018-06-13 09:27:18
Also in:
linux-iommu, lkml, sparclinux
On Wed, 13 Jun 2018, Peter Zijlstra wrote:
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.
quoted
Is hpet a cross platform thing, or just x86? We should avoid proliferation of files under kernel/ I think, so with these watchdog driver structs then maybe implementations could go in drivers/ or arch/HPET is mostly an x86 thing (altough it can be found elsewhere), but the
On ia64 and I doubt that anyone wants to take on the task of underwater welding it to Itanic.
whole thing relies on the x86 NMI mechanism and is thus firmly arch/ material (like the sparc and ppc thing).
Right. Trying to make this 'generic' is not really solving anything. Thanks, tglx