Re: [PATCH] erofs: fix EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS on some UP platforms
Geert Uytterhoeven <[email protected]>
| Newsgroups | org.ozlabs.lists.linux-erofs,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAMuHMdWQO2Lkv4O8=nv6WVtsL1FEk-04RAv=VSZGkro7n0th2g@mail.gmail.com> |
Hi Gao, On Wed, 12 Aug 2026 at 15:12, Gao Xiang <[email protected]> wrote: > CONFIG_NR_CPUS doesn't define on some UP platforms (e.g. arm), so this > can cause make oldconfig to loop indefinitely when CONFIG_SMP=n: > > $ make ARCH=arm allmodconfig > $ sed -i "/CONFIG_SMP=y/d" .config > $ sed -i "/CONFIG_EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS.*/d" .config > > EROFS LZMA default maximum decompression streams (EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS) [0] (NEW) > EROFS LZMA default maximum decompression streams (EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS) [0] (NEW) > ... > > Let's guard NR_CPUS with SMP instead of using a hardcoded arbitrary CPU > uplimit here, similar to commit a3344078101c ("mm: make SPLIT_PTE_PTLOCKS > depend on SMP"). > > The initial report from SJ Park was for m68k [1] (m68k is the only arch > without NR_CPUS in Kconfig), and it will be changed in another patch [2]. > > [1] https://lore.kernel.org/all/[email protected]/T/#u > [2] https://lore.kernel.org/r/[email protected] > > Reported-by: SJ Park <[email protected]> > Closes: https://lore.kernel.org/r/[email protected] > Reported-by: Guenter Roeck <[email protected]> > Closes: https://lore.kernel.org/r/[email protected] > Fixes: c9b47e6b2311 ("erofs: cap LZMA stream pool size") > Cc: Geert Uytterhoeven <[email protected]> > Signed-off-by: Gao Xiang <[email protected]> Thanks for your patch, which is now commit a64d500b0078e16e ("erofs: fix EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS on some UP platforms") in v7.2. > --- a/fs/erofs/Kconfig > +++ b/fs/erofs/Kconfig > @@ -134,7 +134,8 @@ config EROFS_FS_ZIP_LZMA > config EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS > int "EROFS LZMA default maximum decompression streams" > depends on EROFS_FS_ZIP_LZMA > - range 1 NR_CPUS > + range 1 NR_CPUS if SMP > + range 1 1 if !SMP > default 16 I have just discovered another oddity: when you have less than 16 CPUS (including SMP=n), this default value is invalid, and "make savedefconfig" will always write a line like CONFIG_EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS=1 to the defconfig file, even if that is the default suggested value. Needlessly polluting the defconfig files could be fixed using: - default 16 + default 16 if SMP && NR_CPUS >= 16 + default NR_CPUS if SMP + default 1 if !SMP Thoughts? > help > By default EROFS allocates one LZMA decompression stream per CPU. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds