From: "Ahmed S. Darwish" <darwi@linutronix.de>
To: sashiko-reviews@lists.linux.dev
Cc: "Clark Williams" <clrkwllms@kernel.org>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nicolas Schier" <nsc@kernel.org>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Frederic Weisbecker" <frederic@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"John Ogness" <john.ogness@linutronix.de>,
"Derek Barbosa" <debarbos@redhat.com>,
"Zbigniew Jędrzejewski-Szmek" <zbyszek@amutable.com>,
"Daan De Meyer" <daan.j.demeyer@gmail.com>,
"Luca Boccassi" <luca.boccassi@gmail.com>,
linux-rt-devel@lists.linux.dev, debian-kernel@lists.debian.org,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 03/10] kconfig-checker: Add the configuration checker code
Date: Mon, 9 Nov 2026 20:29:22 +0100 [thread overview]
Message-ID: <avIfEhE83UkF9g_Y@lx-t490> (raw)
In-Reply-To: <sashiko-outbox-202758@kernel.org>
On Sat, 07 Nov 2026, sashiko-bot@kernel.org wrote:
> >
> > + def _find_issue_pattern(self, pattern_rule: PatternRule) -> Optional[PatternIssue]:
> > + """Check the .config against a pattern rule. Return found issues, if any."""
> > + if pattern_rule.expected == ExpectedValue.allowed:
> > + return None
> > +
> > + violation_type = 'unset' if pattern_rule.expected == ExpectedValue.y else 'set'
> > + docs_url = self.rules.get_docs_url_for(pattern_rule)
> > +
> > + violating_symbols = []
> > +
> > + for symbol in self.kconfig.get_matching_symbols(pattern_rule.symbol_regex):
> > + symbol_value = self.kconfig.get_symbol_value(symbol)
> > +
> > + if pattern_rule.expected == ExpectedValue.y and symbol_value == 'n':
> > + # Exclude the config symbol if it's explicitly disabled elsewhere
> > + symbol_rule = self.rules.get_symbol_rule(symbol)
> > + if symbol_rule and symbol_rule.expected == ExpectedValue.n:
> > + continue
> > +
> > + violating_symbols.append(symbol)
> > +
> > + if pattern_rule.expected == ExpectedValue.n and symbol_value in ('y', 'm'):
> > + # Exclude the config symbol if it's explicitly allowed elsewhere
> > + symbol_rule = self.rules.get_symbol_rule(symbol)
> > + if symbol_rule and symbol_rule.expected in (ExpectedValue.y, ExpectedValue.allowed):
> > + continue
> > +
> > + violating_symbols.append(symbol)
>
> [Severity: Low]
> Should _find_issue_pattern() skip any symbol that has an explicit
> SymbolRule, regardless of symbol_rule.expected?
>
> Only checking for opposing expected values causes two issues: when
> pattern_rule.expected is ExpectedValue.y, a symbol with a SymbolRule of
> ExpectedValue.allowed is not exempted and is falsely reported as unset,
I think you misunderstand what 'allowed' means.
'expected: allowed', means that an option is permitted. Quoting the schema:
#
# Expected value for the matching kernel configuration option.
#
# Values:
#
# y option is expected to be enabled (built-in or module).
# n option is expected to be disabled or unset.
# allowed option is permitted and must not be reported as a violation.
# This is to be used either by overlays, or to exempt a specific
# symbol from a broader `name_pattern` rule with `expected: n`.
#
expected:
type: string
enum: [y, n, allowed]
So, for below policy:
- name_pattern: CONFIG_DEBUG_.*
expected: n
- name: CONFIG_DEBUG_ATOMIC_SLEEP
expected: allowed
having a CONFIG_DEBUG_ATOMIC_SLEEP=y should not trigger an audit warning.
But for below policy:
- name_pattern: CONFIG_DEBUG_.*
expected: y
- name: CONFIG_DEBUG_ATOMIC_SLEEP
expected: allowed
having CONFIG_DEBUG_ATOMIC_SLEEP=y should trigger no warning, but having
'CONFIG_DEBUG_ATOMIC_SLEEP is unset' should definitely trigger a warning,
even with the second 'expected: allowed' rule.
TLDR; the pattern expected: y / symbol expected: allowed case is not a bug.
>
> and when a SymbolRule has the same expected value as the PatternRule (for
> example, to give a specific symbol its own severity or rationale), the
> violation is reported twice—once by _find_issue_symbol() and once by
> _find_issue_pattern().
>
Hmm, the tool does not handle below case:
- name_pattern: CONFIG_DEBUG_.*
expected: n
serverity: medium
- name: CONFIG_DEBUG_ATOMIC_SLEEP
expected: n
severity: fatal
rationale: Danger! must disable! Danger!
But on a second look, maybe it should... I'll think about it.
Thanks,
Ahmed
next prev parent reply other threads:[~2026-11-09 19:29 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 9:19 [PATCH v1 00/10] tools: Introduce a kernel configuration checker Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 01/10] kconfig-checker: Add schema for rule files Ahmed S. Darwish
2026-11-08 18:59 ` Julian Braha
2026-11-09 12:40 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 02/10] kconfig-checker: Introduce PREEMPT_RT configuration rules Ahmed S. Darwish
2026-11-07 9:20 ` sashiko-bot
2026-11-09 18:09 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 03/10] kconfig-checker: Add the configuration checker code Ahmed S. Darwish
2026-11-07 9:20 ` sashiko-bot
2026-11-09 19:29 ` Ahmed S. Darwish [this message]
2026-11-08 18:59 ` Julian Braha
2026-11-09 13:00 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 04/10] kconfig: Introduce checkconfig target Ahmed S. Darwish
2026-11-07 9:20 ` sashiko-bot
2026-11-08 18:59 ` Julian Braha
2026-11-09 0:39 ` Nathan Chancellor
2026-11-09 13:18 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 05/10] Documentation: Describe kconfig-checker usage and design Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 06/10] kconfig-checker: Split schema to support component reuse Ahmed S. Darwish
2026-11-07 9:20 ` sashiko-bot
2026-11-09 18:22 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 07/10] kconfig-checker: Introduce overlays schema Ahmed S. Darwish
2026-11-07 9:20 ` sashiko-bot
2026-11-09 16:47 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 08/10] kconfig-checker: Add support for rule overlays Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 09/10] Documentation: Describe kconfig-checker overlays Ahmed S. Darwish
2026-11-07 9:20 ` sashiko-bot
2026-11-09 16:50 ` Ahmed S. Darwish
2026-11-06 9:19 ` [PATCH v1 10/10] kconfig: Introduce OVERLAY= for make checkconfig Ahmed S. Darwish
2026-11-08 18:59 ` [PATCH v1 00/10] tools: Introduce a kernel configuration checker Julian Braha
2026-11-09 0:37 ` Nathan Chancellor
2026-11-09 16:15 ` Ahmed S. Darwish
2026-11-09 16:52 ` Nathan Chancellor
2026-11-09 17:04 ` Ahmed S. Darwish
2026-11-09 15:49 ` Ahmed S. Darwish
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=avIfEhE83UkF9g_Y@lx-t490 \
--to=darwi@linutronix.de \
--cc=bigeasy@linutronix.de \
--cc=clrkwllms@kernel.org \
--cc=corbet@lwn.net \
--cc=daan.j.demeyer@gmail.com \
--cc=debarbos@redhat.com \
--cc=debian-kernel@lists.debian.org \
--cc=frederic@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=john.ogness@linutronix.de \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-devel@lists.linux.dev \
--cc=luca.boccassi@gmail.com \
--cc=mingo@redhat.com \
--cc=nathan@kernel.org \
--cc=nsc@kernel.org \
--cc=rostedt@goodmis.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=zbyszek@amutable.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®