Re: [PATCH] erofs: Fix EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS default logic
Gao Xiang <[email protected]>
| Newsgroups | org.ozlabs.lists.linux-erofs,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Geert,
On Thu, Aug 20, 2026 at 12:00:23PM +0200, Geert Uytterhoeven wrote:
> When NR_CPUS is less than 16, or when SMP is disabled, the default value
> of 16 is invalid.
>
> While actual configuration picks up a sensible and valid default
> (NR_CPUS or 1), "make savedefconfig" will still write a line like
>
> CONFIG_EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS=1
>
> to the defconfig file, even if that matches the sensible default.
>
> Avoid needlessly enlarging the defconfig files, and reduce churn for
> updating them, by specifying valid defaults depending on SMP and
> NR_CPUS.
>
> While at it, make the prompt depend on SMP, as there is no point in
> asking the user about the maximum number of decompression streams if
> there is only one valid answer.
>
> Fixes: c9b47e6b23114e93 ("erofs: cap LZMA stream pool size")
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> ---
> fs/erofs/Kconfig | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig
> index 2dfc313588d283a0..37495e95a78d9bf6 100644
> --- a/fs/erofs/Kconfig
> +++ b/fs/erofs/Kconfig
> @@ -132,11 +132,13 @@ config EROFS_FS_ZIP_LZMA
> Say N if you want to disable LZMA compression support.
>
> config EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS
> - int "EROFS LZMA default maximum decompression streams"
> + int "EROFS LZMA default maximum decompression streams" if SMP
As I said, if NR_CPUS is meaningful for both SMP or !SMP, there should
not be SMP involved in this Kconfig.
In other words, if SMP below is just a workaround since some arches
leave NR_CPUS = 0 if !SMP. If NR_CPUS is valid unconditionally, I don't
think SMP is at all useful here.
Could you just drop if SMP and leave this configuration unconditionally
shown for users? It's easy for all users to get how this Kconfig works.
Thanks,
Gao Xiang
> depends on EROFS_FS_ZIP_LZMA
> range 1 NR_CPUS if SMP
> range 1 1 if !SMP
> - default 16
> + default 16 if SMP && NR_CPUS >= 16
> + default NR_CPUS if SMP
> + default 1
> help
> By default EROFS allocates one LZMA decompression stream per CPU.
> Each stream can hold a dictionary of up to 8 MiB taken from the
> @@ -144,7 +146,7 @@ config EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS
> of memory. This caps the default; the lzma_streams module parameter
> still overrides it.
>
> - If unsure, keep the default of 16.
> + If unsure, keep the suggested default (16 or lower).
>
> config EROFS_FS_ZIP_DEFLATE
> bool "EROFS DEFLATE compressed data support"
> --
> 2.43.0
>
>