Hi, On Fri, Jun 16, 2023 at 8:07 AM Petr Mladek <pmladek@xxxxxxxx> wrote: > > There are four possible variants of hardlockup detectors: > > + buddy: available when SMP is set. > > + perf: available when HAVE_HARDLOCKUP_DETECTOR_PERF is set. > > + arch-specific: available when HAVE_HARDLOCKUP_DETECTOR_ARCH is set. > > + sparc64 special variant: available when HAVE_NMI_WATCHDOG is set > and HAVE_HARDLOCKUP_DETECTOR_ARCH is not set. > > The check for the sparc64 variant is more complicated because > HAVE_NMI_WATCHDOG is used to #ifdef code used by both arch-specific > and sparc64 specific variant. Therefore it is automatically > selected with HAVE_HARDLOCKUP_DETECTOR_ARCH. > > This complexity is partly hidden in HAVE_HARDLOCKUP_DETECTOR_NON_ARCH. > It reduces the size of some checks but it makes them harder to follow. > > Finally, the other temporary variable HARDLOCKUP_DETECTOR_NON_ARCH > is used to re-compute HARDLOCKUP_DETECTOR_PERF/BUDDY when the global > HARDLOCKUP_DETECTOR switch is enabled/disabled. > > Make the logic more straightforward by the following changes: > > + Better explain the role of HAVE_HARDLOCKUP_DETECTOR_ARCH and > HAVE_NMI_WATCHDOG in comments. > > + Add HAVE_HARDLOCKUP_DETECTOR_BUDDY so that there is separate > HAVE_* for all four hardlockup detector variants. > > Use it in the other conditions instead of SMP. It makes it > clear that it is about the buddy detector. > > + Open code HAVE_HARDLOCKUP_DETECTOR_NON_ARCH in HARDLOCKUP_DETECTOR > and HARDLOCKUP_DETECTOR_PREFER_BUDDY. It helps to understand > the conditions between the four hardlockup detector variants. > > + Define the exact conditions when HARDLOCKUP_DETECTOR_PERF/BUDDY > can be enabled. It explains the dependency on the other > hardlockup detector variants. > > Also it allows to remove HARDLOCKUP_DETECTOR_NON_ARCH by using "imply". > It triggers re-evaluating HARDLOCKUP_DETECTOR_PERF/BUDDY when > the global HARDLOCKUP_DETECTOR switch is changed. > > + Add dependency on HARDLOCKUP_DETECTOR so that the affected variables > disappear when the hardlockup detectors are disabled. > > Another nice side effect is that HARDLOCKUP_DETECTOR_PREFER_BUDDY > value is not preserved when the global switch is disabled. > The user has to make the decision again when it gets re-enabled. > > Signed-off-by: Petr Mladek <pmladek@xxxxxxxx> > --- > arch/Kconfig | 23 +++++++++++++----- > lib/Kconfig.debug | 62 +++++++++++++++++++++++++++-------------------- > 2 files changed, 53 insertions(+), 32 deletions(-) While I'd still paint the bikeshed a different color and organize the dependencies a little differently, as discussed in your v1 post, this is still OK w/ me. Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>