On Wed, Sep 16, 2026 at 08:38:33AM +0200, Arnd Bergmann wrote:
> On Wed, Sep 16, 2026, at 03:06, Kees Cook wrote:
> > On Mon, Sep 14, 2026 at 10:22:20AM +0100, Lorenzo Stoakes (ARM) wrote:
> >
> > Makefile:
> >
> > KPGZIP := $(if $(shell command -v pigz 2>/dev/null),$(PYTHON3)
> > $(abs_srctree)/scripts/jobserver-exec
> > $(abs_srctree)/scripts/parallel-gzip,gzip)
> >
> > and the same scripts/parallel-gzip:
> >
> > #!/bin/sh
> > exec pigz -p ${PARALLELISM:-1} "$@"
> >
> > And then replace the /boot/ KGZIP uses with KPGZIP. Then we don't need
> > to change modules, config_data, new users, nor cmd_gzip, etc, which all
> > continue to use the regular KGZIP and the "use python" part for the
> > KPGZIP case becomes is a 1-time cost?
>
> Nice, I like the idea and this this will work. I didn't know about
> scripts/jobserver-exec, but this does seem like a perfect fit.
>
> I checked the other compression tools we support, and found that
> zstd is another one that has built-in support for parallel
> compression, so we probably want to have it there as well.
Follow-up idea:
Having to make a dedicated wrapper script to use jobserver-exec is a bit
clunky, so maybe the ergonomics need to be improved there slightly?
Maybe we can add a simple template thingy to
tools/lib/python/jobserver.py's "run" to replace, say, '%PARALLELISM%'
automatically, then it becomes:
KPGZIP := $(if $(shell command -v pigz 2>/dev/null),$(PYTHON3) \
$(abs_srctree)/scripts/jobserver-exec \
pigz -p %PARALLELISM%
-Kees
--
Kees Cook