Hi, On Wed, Jun 7, 2023 at 8:25 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. > > Only one hardlockup detector can be compiled in. The selection is done > using quite complex dependencies between several CONFIG variables. > The following patches will try to make it more straightforward. > > As a first step, reorder the definitions of the various CONFIG variables. > The logical order is: > > 1. HAVE_* variables define available variants. They are typically > defined in the arch/ config files. > > 2. HARDLOCKUP_DETECTOR y/n variable defines whether the hardlockup > detector is enabled at all. > > 3. HARDLOCKUP_DETECTOR_PREFER_BUDDY y/n variable defines whether > the buddy detector should be preferred over the perf one. > Note that the arch specific variants are always preferred when > available. > > 4. HARDLOCKUP_DETECTOR_PERF/BUDDY variables define whether the given > detector is enabled in the end. > > 5. HAVE_HARDLOCKUP_DETECTOR_NON_ARCH and HARDLOCKUP_DETECTOR_NON_ARCH > are temporary variables that are going to be removed in > a followup patch. > > The patch just shuffles the definitions. It should not change the existing > behavior. > > Signed-off-by: Petr Mladek <pmladek@xxxxxxxx> > --- > lib/Kconfig.debug | 112 +++++++++++++++++++++++----------------------- > 1 file changed, 56 insertions(+), 56 deletions(-) I don't really have any strong opinions, so I'm fine with this. In general I think the ordering I picked tried to match the existing "style" which generally tried to list configs and then select them below. To me the existing style makes more sense when thinking about writing C code without having to put a pile of prototypes at the top of your file: you define things higher in the file and reference them below. For instance, the old style (before any of my patches) had: config SOFTLOCKUP_DETECTOR: ... blah blah blah ... config HARDLOCKUP_DETECTOR_PERF: select SOFTLOCKUP_DETECTOR config HARDLOCKUP_DETECTOR: ... blah blah blah ... select LOCKUP_DETECTOR select HARDLOCKUP_DETECTOR_PERF if HAVE_HARDLOCKUP_DETECTOR_PERF Your new style seems to be the opposite of that. -Doug