Re: [PATCH 2/3] kbuild: handle module compression while running 'make modules_install'.

From: Rusty Russell
Date: Wed Aug 20 2014 - 15:47:12 EST


Bertrand Jacquin <beber@xxxxxxxxxxxx> writes:

> Since module-init-tools (gzip) and kmod (gzip and xz) support compressed
> modules, it could be useful to include a support for compressing modules
> right after having them installed. Doing this in kbuild instead of per
> distro can permit to make this kind of usage more generic.
>
> This patch add a Kconfig entry to "Enable loadable module support" menu
> and let you choose to compress using gzip (default) or xz.
>
> Both gzip and xz does not used any extra -[1-9] option since Andi Kleen
> and Rusty Russell prove no gain is made using them. gzip is called with -n
> argument to avoid storing original filename inside compressed file, that
> way we can save some more bytes.
>
> On a v3.16 kernel, 'make allmodconfig' generated 4680 modules for a
> total of 378MB (no strip, no sign, no compress), the following table
> shows observed disk space gain based on the allmodconfig .config :
>
> | time |
> +-------------+-----------------+
> | manual .ko | make | size | percent
> | compression | modules_install | | gain
> +-------------+-----------------+------+--------
> - | | 18.61s | 378M |
> GZIP | 3m16s | 3m37s | 102M | 73.41%
> XZ | 5m22s | 5m39s | 77M | 79.83%
>
> The gain for restricted environnement seems to be interesting while
> uncompress can be time consuming but happens only while loading a module,
> that is generally done only once.
>
> This is fully compatible with signed modules while the signed module is
> compressed. module-init-tools or kmod handles decompression
> and provide to other layer the uncompressed but signed payload.
>
> Reviewed-by: Willy Tarreau <w@xxxxxx>
> Signed-off-by: Bertrand Jacquin <beber@xxxxxxxxxxxx>

Thanks, applied these two as well. They'll go in *next* merge window
(ie. 3.18).

Cheers.
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/