On Wed, Feb 27, 2019 at 08:17:58AM -0800, Paul E. McKenney wrote:
> On Wed, Feb 27, 2019 at 08:05:13AM -0800, Ricardo Neri wrote:
> > CPU architectures that have an NMI watchdog use arch_touch_nmi_watchdog()
> > to briefly ignore the hardlockup detector. If the architecture does not
> > have an NMI watchdog, one can be constructed using a source of non-
> > maskable interrupts. In this case, arch_touch_nmi_watchdog() is common
> > to any underlying hardware resource used to drive the detector and needs
> > to be available to other kernel subsystems if hardware different from perf
> > drives the detector.
> > 
> > There exists perf-based and HPET-based implementations. Make it available
> > to the latter.
> > 
> > For clarity, wrap this function in a separate preprocessor conditional
> > from functions which are truly specific to the perf-based implementation.
> > 
> > Cc: "H. Peter Anvin" <[email protected]>
> > Cc: Ashok Raj <[email protected]>
> > Cc: Andi Kleen <[email protected]>
> > Cc: Tony Luck <[email protected]>
> > Cc: "Rafael J. Wysocki" <[email protected]>
> > Cc: Don Zickus <[email protected]>
> > Cc: Nicholas Piggin <[email protected]>
> > Cc: Michael Ellerman <[email protected]>
> > Cc: Frederic Weisbecker <[email protected]>
> > Cc: Alexei Starovoitov <[email protected]>
> > Cc: Babu Moger <[email protected]>
> > Cc: "David S. Miller" <[email protected]>
> > Cc: Benjamin Herrenschmidt <[email protected]>
> > Cc: Paul Mackerras <[email protected]>
> > Cc: Mathieu Desnoyers <[email protected]>
> > Cc: Masami Hiramatsu <[email protected]>
> > Cc: Peter Zijlstra <[email protected]>
> > Cc: Andrew Morton <[email protected]>
> > Cc: Philippe Ombredanne <[email protected]>
> > Cc: Colin Ian King <[email protected]>
> > Cc: Byungchul Park <[email protected]>
> > Cc: "Paul E. McKenney" <[email protected]>
> > Cc: "Luis R. Rodriguez" <[email protected]>
> > Cc: Waiman Long <[email protected]>
> > Cc: Josh Poimboeuf <[email protected]>
> > Cc: Randy Dunlap <[email protected]>
> > Cc: Davidlohr Bueso <[email protected]>
> > Cc: Christoffer Dall <[email protected]>
> > Cc: Marc Zyngier <[email protected]>
> > Cc: Kai-Heng Feng <[email protected]>
> > Cc: Konrad Rzeszutek Wilk <[email protected]>
> > Cc: David Rientjes <[email protected]>
> > Cc: "Ravi V. Shankar" <[email protected]>
> > Cc: [email protected]
> > Cc: [email protected]
> > Cc: [email protected]
> > Signed-off-by: Ricardo Neri <[email protected]>
> > ---
> >  include/linux/nmi.h | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> > 
> > diff --git a/include/linux/nmi.h b/include/linux/nmi.h
> > index 5a8b19749769..bf5ebcfdd590 100644
> > --- a/include/linux/nmi.h
> > +++ b/include/linux/nmi.h
> > @@ -94,8 +94,16 @@ static inline void hardlockup_detector_disable(void) {}
> >  # define NMI_WATCHDOG_SYSCTL_PERM  0444
> >  #endif
> > 
> > -#if defined(CONFIG_HARDLOCKUP_DETECTOR_PERF)
> > +#if defined(CONFIG_HARDLOCKUP_DETECTOR_PERF) || \
> > +    defined(CONFIG_X86_HARDLOCKUP_DETECTOR_HPET)
> 
> Why not instead make CONFIG_X86_HARDLOCKUP_DETECTOR_HPET select
> CONFIG_HARDLOCKUP_DETECTOR_PERF?  Keep the arch-specific details
> in the arch-specific files and all that.

Thanks for your feedback, Paul! The HPET implementation does not use
perf. Thus, in my opinion is not correct for the HPET HLD to select
the perf implementation. Patch 8 of this series splits the perf-specific
code and the generic hardlockup detector code. Does this make sense?

Thanks and BR,
Ricardo

Reply via email to