From: Petr Mladek <pmladek@suse.com>
To: Doug Anderson <dianders@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
kgdb-bugreport@lists.sourceforge.net,
linux-kernel@vger.kernel.org, Nicholas Piggin <npiggin@gmail.com>,
Michael Ellerman <mpe@ellerman.id.au>,
linuxppc-dev@lists.ozlabs.org,
Christophe Leroy <christophe.leroy@csgroup.eu>,
sparclinux@vger.kernel.org,
"David S . Miller" <davem@davemloft.net>,
linux-perf-users@vger.kernel.org
Subject: Re: [PATCH 1/7] watchdog/hardlockup: Sort hardlockup detector related config values a logical way
Date: Thu, 8 Jun 2023 12:19:02 +0200 [thread overview]
Message-ID: <ZIGrFiGhUiO6OOsa@alley> (raw)
In-Reply-To: <CAD=FV=X4Sp=ZE4DWob-W0NzRm00K7wOWxyyCCaHUHNPPinsjhg@mail.gmail.com>
On Wed 2023-06-07 16:34:20, Doug Anderson wrote:
> Hi,
>
> On Wed, Jun 7, 2023 at 8:25 AM Petr Mladek <pmladek@suse.com> wrote:
> > 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.
> >
>
> 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
I know. My motivation was the following:
1. Kconfig is not C. My view is that it is more like a menu. There is a
top level item. If the top level is enabled then there is a submenu
with a more detailed selection of various variants and options.
2. The current logic is quite complicated from my POV. And it was
even before your patchset. For example,
HAVE_HARDLOCKUP_DETECTOR_BUDDY is defined as:
config HAVE_HARDLOCKUP_DETECTOR_BUDDY
bool
depends on SMP
default y
One would expect that it would be enabled on SMP system.
But the final value depends on many other variables
which are defined using relatively complex conditions,
especially HARDLOCKUP_DETECTOR, HAVE_HARDLOCKUP_DETECTOR_NON_ARCH,
and HARDLOCKUP_DETECTOR_NON_ARCH.
Understanding the logic is even more complicated because Kconfig is
not indexed by cscope.
Important: The logic used at the end of the patchset actually
follows the C style. It defines how the various variables
depend on each other from top to bottom.
>
> config SOFTLOCKUP_DETECTOR:
> ... blah blah blah ...
This one is actually defined in the menu-like order:
config SOFTLOCKUP_DETECTOR
config BOOTPARAM_SOFTLOCKUP_PANIC
depends on SOFTLOCKUP_DETECTOR
It is because the custom option depends on the top level one.
This is exactly what I would like to achieve with HARDLOCKUP
variables in this patchset.
Best Regards,
Petr
WARNING: multiple messages have this Message-ID (diff)
From: Petr Mladek <pmladek@suse.com>
To: Doug Anderson <dianders@chromium.org>
Cc: kgdb-bugreport@lists.sourceforge.net,
linux-kernel@vger.kernel.org, Nicholas Piggin <npiggin@gmail.com>,
linux-perf-users@vger.kernel.org, sparclinux@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org,
"David S . Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/7] watchdog/hardlockup: Sort hardlockup detector related config values a logical way
Date: Thu, 8 Jun 2023 12:19:02 +0200 [thread overview]
Message-ID: <ZIGrFiGhUiO6OOsa@alley> (raw)
In-Reply-To: <CAD=FV=X4Sp=ZE4DWob-W0NzRm00K7wOWxyyCCaHUHNPPinsjhg@mail.gmail.com>
On Wed 2023-06-07 16:34:20, Doug Anderson wrote:
> Hi,
>
> On Wed, Jun 7, 2023 at 8:25 AM Petr Mladek <pmladek@suse.com> wrote:
> > 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.
> >
>
> 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
I know. My motivation was the following:
1. Kconfig is not C. My view is that it is more like a menu. There is a
top level item. If the top level is enabled then there is a submenu
with a more detailed selection of various variants and options.
2. The current logic is quite complicated from my POV. And it was
even before your patchset. For example,
HAVE_HARDLOCKUP_DETECTOR_BUDDY is defined as:
config HAVE_HARDLOCKUP_DETECTOR_BUDDY
bool
depends on SMP
default y
One would expect that it would be enabled on SMP system.
But the final value depends on many other variables
which are defined using relatively complex conditions,
especially HARDLOCKUP_DETECTOR, HAVE_HARDLOCKUP_DETECTOR_NON_ARCH,
and HARDLOCKUP_DETECTOR_NON_ARCH.
Understanding the logic is even more complicated because Kconfig is
not indexed by cscope.
Important: The logic used at the end of the patchset actually
follows the C style. It defines how the various variables
depend on each other from top to bottom.
>
> config SOFTLOCKUP_DETECTOR:
> ... blah blah blah ...
This one is actually defined in the menu-like order:
config SOFTLOCKUP_DETECTOR
config BOOTPARAM_SOFTLOCKUP_PANIC
depends on SOFTLOCKUP_DETECTOR
It is because the custom option depends on the top level one.
This is exactly what I would like to achieve with HARDLOCKUP
variables in this patchset.
Best Regards,
Petr
next prev parent reply other threads:[~2023-06-08 10:19 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-07 15:24 [PATCH 0/7] watchdog/hardlockup: Cleanup configuration of hardlockup detectors Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 15:24 ` [PATCH 1/7] watchdog/hardlockup: Sort hardlockup detector related config values a logical way Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:34 ` Doug Anderson
2023-06-07 23:34 ` Doug Anderson
2023-06-08 10:19 ` Petr Mladek [this message]
2023-06-08 10:19 ` Petr Mladek
2023-06-07 15:24 ` [PATCH 2/7] watchdog/hardlockup: Make the config checks more straightforward Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:35 ` Doug Anderson
2023-06-07 23:35 ` Doug Anderson
2023-06-08 11:02 ` Petr Mladek
2023-06-08 11:02 ` Petr Mladek
2023-06-08 13:55 ` Doug Anderson
2023-06-08 13:55 ` Doug Anderson
2023-06-14 10:29 ` Petr Mladek
2023-06-14 10:29 ` Petr Mladek
2023-06-14 13:47 ` Doug Anderson
2023-06-14 13:47 ` Doug Anderson
2023-06-07 15:24 ` [PATCH 3/7] watchdog/hardlockup: Declare arch_touch_nmi_watchdog() only in linux/nmi.h Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:35 ` Doug Anderson
2023-06-07 23:35 ` Doug Anderson
2023-06-08 11:03 ` Petr Mladek
2023-06-08 11:03 ` Petr Mladek
2023-06-07 15:24 ` [PATCH 4/7] watchdog/hardlockup: Enable HAVE_NMI_WATCHDOG only on sparc64 Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:36 ` Doug Anderson
2023-06-07 23:36 ` Doug Anderson
2023-06-08 13:46 ` Petr Mladek
2023-06-08 13:46 ` Petr Mladek
2023-06-07 15:24 ` [PATCH 5/7] watchdog/sparc64: Rename HAVE_NMI_WATCHDOG to HAVE_HARDLOCKUP_WATCHDOG_SPARC64 Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:36 ` Doug Anderson
2023-06-07 23:36 ` Doug Anderson
2023-06-07 15:24 ` [PATCH 6/7] watchdog/sparc64: Define HARDLOCKUP_DETECTOR_SPARC64 Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:36 ` Doug Anderson
2023-06-07 23:36 ` Doug Anderson
2023-06-07 15:24 ` [PATCH 7/7] watchdog/hardlockup: Define HARDLOCKUP_DETECTOR_ARCH Petr Mladek
2023-06-07 15:24 ` Petr Mladek
2023-06-07 23:37 ` Doug Anderson
2023-06-07 23:37 ` Doug Anderson
2023-06-08 13:48 ` Petr Mladek
2023-06-08 13:48 ` Petr Mladek
2023-06-07 23:37 ` [PATCH 0/7] watchdog/hardlockup: Cleanup configuration of hardlockup detectors Doug Anderson
2023-06-07 23:37 ` Doug Anderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZIGrFiGhUiO6OOsa@alley \
--to=pmladek@suse.com \
--cc=akpm@linux-foundation.org \
--cc=christophe.leroy@csgroup.eu \
--cc=davem@davemloft.net \
--cc=dianders@chromium.org \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=sparclinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.