Devicetree
 help / color / mirror / Atom feed
From: Nicolas Schier <nsc@kernel.org>
To: Daniel Golle <daniel@makrotopia.org>
Cc: "Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Saravana Kannan" <saravanak@kernel.org>,
	"Ping-Ke Shih" <pkshih@realtek.com>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"David Sterba" <dsterba@suse.com>,
	"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
	"Hariharan Basuthkar" <quic_hbasuthk@quicinc.com>,
	"Jeff Hugo" <jeff.hugo@oss.qualcomm.com>,
	"Filipe Manana" <fdmanana@suse.com>,
	"Bitterblue Smith" <rtl8821cerfe2@gmail.com>,
	"Wei Yang" <richard.weiyang@gmail.com>,
	"Takashi Iwai" <tiwai@suse.de>,
	"Aurabindo Pillai" <aurabindo.pillai@amd.com>,
	"Chih-Kang Chang" <gary.chang@realtek.com>,
	"David Lechner" <dlechner@baylibre.com>,
	"Miguel Ojeda" <ojeda@kernel.org>, "Gary Guo" <gary@garyguo.net>,
	"Tamir Duberstein" <tamird@kernel.org>,
	"Thomas Weißschuh" <linux@weissschuh.net>,
	"Pagadala Yesu Anjaneyulu" <pagadala.yesu.anjaneyulu@intel.com>,
	"Bartosz Golaszewski" <brgl@kernel.org>,
	"Jorge Ramirez-Ortiz" <jorge.ramirez@oss.qualcomm.com>,
	"Masahiro Yamada" <masahiroy@kernel.org>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Aleksander Jan Bajkowski" <olek2@wp.pl>,
	"Boris Burkov" <boris@bur.io>,
	"Blake Jones" <blakejones@google.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kbuild@vger.kernel.org
Subject: Re: [PATCH v5 3/4] dt-bindings: wire style checker into dt_binding_check
Date: Sat, 13 Jun 2026 11:58:03 +0200	[thread overview]
Message-ID: <ai0pqz9904tzrDGl@levanger> (raw)
In-Reply-To: <a14fdbded0acdc4fef1c1278100f2f4c6a93a488.1779908995.git.daniel@makrotopia.org>

On Wed, May 27, 2026 at 08:32:26PM +0100, Daniel Golle wrote:
> Run dt-check-style as part of dt_binding_check_one. The recipe wraps
> the tool with scripts/jobserver-exec so worker count follows the GNU
> make jobserver -- `make -j N dt_binding_check` constrains the checker
> to N workers rather than spawning one per CPU.
> 
> Default mode (relaxed) is zero-violation on the current tree, so this
> does not introduce new warnings into make dt_binding_check. Stricter
> rules are available via --mode=strict (eg. for use by checkpatch.pl in
> a future series).
> 
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> ---
> v5:
>  - no change; depends on the new jobserver-exec fix in 2/4 so
>    style failures stay visible instead of being cached
> 
> v4:
>  - build the @argfile with f=$(mktemp) and remove it with rm -f
>    (matching cmd_mk_schema), instead of Kbuild's $(tmp-target)
>    which leaves a stale .tmp_.dt-style.checked in the build tree
> 
> v3:
>  - use Kbuild's $(tmp-target) instead of mktemp so build output
>    stays inside the build folder (Nathan)
>  - collapse the conditional cleanup tail into the familiar
>    "&& touch $@ || true" pattern, matching cmd_chk_bindings;
>    keeps future warnings non-fatal (Rob, Nathan)
>  - retained the explicit $(PYTHON3) prefix (Rob asked why it
>    differs from the rest of this Makefile): per
>    Documentation/kbuild/makefiles.rst "Script invocation",
>    in-tree scripts should be called through their interpreter so
>    the executable bit and shebang are not relied on and the
>    user's $(PYTHON3) override is respected. The neighbouring
>    recipes invoke their Python helpers directly because those
>    come from external packages (dtschema's dt-extract-*,
>    dt-check-compatible, dt-doc-validate), which is the case Rob
>    asked about and which sits outside that rule.
> 
> v2:
>  - dropped xargs -n200 -P$(nproc) sharding; single Python invocation
>    with file list via @argfile
>  - dropped `|| true`: relaxed mode is zero-output today
>  - wrapped under scripts/jobserver-exec so worker count follows the
>    make jobserver
> 
>  Documentation/devicetree/bindings/Makefile | 19 +++++++++++++++++--
>  1 file changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
> index 7b668f7fd400..00149e824261 100644
> --- a/Documentation/devicetree/bindings/Makefile
> +++ b/Documentation/devicetree/bindings/Makefile
> @@ -46,6 +46,18 @@ quiet_cmd_chk_bindings = CHKDT   $(src)
>  			  xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(src)) \
>  			  && touch $@ || true
>  
> +DT_CHK_STYLE = $(srctree)/scripts/dtc/dt-check-style
> +
> +# Feed the file list to the checker via @argfile in a single Python
> +# process so the ruamel.yaml import is paid once. scripts/jobserver-exec
> +# claims slots from the GNU make jobserver and exposes the count via
> +# $PARALLELISM, which dt-check-style picks up to size its worker pool.
> +quiet_cmd_chk_style = STYLE   $(src)
> +      cmd_chk_style = f=$$(mktemp) && $(find_cmd) > $$f && \
> +		      $(PYTHON3) $(srctree)/scripts/jobserver-exec \
> +		      $(PYTHON3) $(DT_CHK_STYLE) @$$f \
> +		      && touch $@ || true; rm -f $$f

As usage of $(mktemp) requires an unconditional 'rm -f $$f', too, I'd
like to repeat Nathans suggestion to use Kbuild's $(tmp-target) instead.
The rationale, as Nathan wrote, is to keep generated files within the
build tree.


-- 
Nicolas

  parent reply	other threads:[~2026-06-13 10:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-27 19:31 [PATCH v5 0/4] dt-bindings: automated coding style check for DTS examples Daniel Golle
2026-05-27 19:32 ` [PATCH v5 1/4] dt-bindings: add DTS style checker Daniel Golle
2026-05-27 19:46   ` sashiko-bot
2026-06-09 16:19   ` Krzysztof Kozlowski
2026-05-27 19:32 ` [PATCH v5 2/4] scripts/jobserver-exec: propagate child exit status Daniel Golle
2026-06-09 17:08   ` Krzysztof Kozlowski
2026-05-27 19:32 ` [PATCH v5 3/4] dt-bindings: wire style checker into dt_binding_check Daniel Golle
2026-05-27 20:28   ` sashiko-bot
2026-06-13  9:58   ` Nicolas Schier [this message]
2026-06-10 18:38 ` [PATCH v5 0/4] dt-bindings: automated coding style check for DTS examples Rob Herring

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=ai0pqz9904tzrDGl@levanger \
    --to=nsc@kernel.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=aurabindo.pillai@amd.com \
    --cc=blakejones@google.com \
    --cc=boris@bur.io \
    --cc=brgl@kernel.org \
    --cc=bryan.odonoghue@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=daniel@makrotopia.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=dsterba@suse.com \
    --cc=fdmanana@suse.com \
    --cc=gary.chang@realtek.com \
    --cc=gary@garyguo.net \
    --cc=jeff.hugo@oss.qualcomm.com \
    --cc=jorge.ramirez@oss.qualcomm.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=linux@weissschuh.net \
    --cc=masahiroy@kernel.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ojeda@kernel.org \
    --cc=olek2@wp.pl \
    --cc=pagadala.yesu.anjaneyulu@intel.com \
    --cc=pkshih@realtek.com \
    --cc=quic_hbasuthk@quicinc.com \
    --cc=richard.weiyang@gmail.com \
    --cc=robh@kernel.org \
    --cc=rtl8821cerfe2@gmail.com \
    --cc=saravanak@kernel.org \
    --cc=tamird@kernel.org \
    --cc=tiwai@suse.de \
    /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