Re: [PATCH] pstore: add zstd compression support
Hi linux-kernel-owner, Thank you for the patch! Yet something to improve: [auto build test ERROR on kees/for-next/pstore] [also build test ERROR on v4.18-rc7 next-20180802] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/linux-kernel-owner-vger-kernel-org/pstore-add-zstd-compression-support/20180802-195306 base: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore config: x86_64-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): fs/pstore/platform.o: In function `zbufsize_zstd': >> platform.c:(.text+0x172): undefined reference to `ZSTD_compressBound' --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
Re: [PATCH] pstore: add zstd compression support
On Wed, Aug 1, 2018 at 4:23 AM, Geliang Tang wrote: > This patch added the 6th compression algorithm support for pstore: zstd. > > Signed-off-by: Geliang Tang Thanks! I've applied this to my tree and it should be visible in -next soon. > +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) > +static int zbufsize_zstd(size_t size) > +{ > + return ZSTD_compressBound(size); > +} > +#endif One thing I've been pondering is if there might be a way to extend the crypto compression API to provide the "buffer output size" interface directly. If that happened, pstore wouldn't need per-compression-algo entries like it still has. -Kees -- Kees Cook Pixel Security
[PATCH] pstore: add zstd compression support
This patch added the 6th compression algorithm support for pstore: zstd. Signed-off-by: Geliang Tang --- fs/pstore/Kconfig| 17 ++--- fs/pstore/platform.c | 16 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/fs/pstore/Kconfig b/fs/pstore/Kconfig index 09c19ef91526..63cf4813559a 100644 --- a/fs/pstore/Kconfig +++ b/fs/pstore/Kconfig @@ -50,12 +50,19 @@ config PSTORE_842_COMPRESS help This option enables 842 compression algorithm support. +config PSTORE_ZSTD_COMPRESS + tristate "zstd compression" + depends on PSTORE + select CRYPTO_ZSTD + help + This option enables zstd compression algorithm support. + config PSTORE_COMPRESS def_bool y depends on PSTORE depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||\ PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \ - PSTORE_842_COMPRESS + PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS choice prompt "Default pstore compression algorithm" @@ -65,8 +72,8 @@ choice This change be changed at boot with "pstore.compress=..." on the kernel command line. - Currently, pstore has support for 5 compression algorithms: - deflate, lzo, lz4, lz4hc and 842. + Currently, pstore has support for 6 compression algorithms: + deflate, lzo, lz4, lz4hc, 842 and zstd. The default compression algorithm is deflate. @@ -85,6 +92,9 @@ choice config PSTORE_842_COMPRESS_DEFAULT bool "842" if PSTORE_842_COMPRESS + config PSTORE_ZSTD_COMPRESS_DEFAULT + bool "zstd" if PSTORE_ZSTD_COMPRESS + endchoice config PSTORE_COMPRESS_DEFAULT @@ -95,6 +105,7 @@ config PSTORE_COMPRESS_DEFAULT default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT default "842" if PSTORE_842_COMPRESS_DEFAULT + default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT config PSTORE_CONSOLE bool "Log kernel console messages" diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index c238ab8ba31d..15e99d5a681d 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -34,6 +34,9 @@ #if IS_ENABLED(CONFIG_PSTORE_LZ4_COMPRESS) || IS_ENABLED(CONFIG_PSTORE_LZ4HC_COMPRESS) #include #endif +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) +#include +#endif #include #include #include @@ -192,6 +195,13 @@ static int zbufsize_842(size_t size) } #endif +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) +static int zbufsize_zstd(size_t size) +{ + return ZSTD_compressBound(size); +} +#endif + static const struct pstore_zbackend *zbackend __ro_after_init; static const struct pstore_zbackend zbackends[] = { @@ -224,6 +234,12 @@ static const struct pstore_zbackend zbackends[] = { .zbufsize = zbufsize_842, .name = "842", }, +#endif +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) + { + .zbufsize = zbufsize_zstd, + .name = "zstd", + }, #endif { } }; -- 2.17.1
Re: [PATCH] pstore: add zstd compression support
On Wed, Mar 21, 2018 at 08:29:31PM +0800, Geliang Tang wrote: > This patch added the 6th compression algorithm support for pstore: zstd. > > Signed-off-by: Geliang Tang > --- > Depend on 'crypto: Add zstd support' by Nick Terrell Hi Kees, The patch 'crypto: zstd - Add zstd support' has been applied to linux-next tree, 20180423, already. So we can use zstd in pstore compression now. Please reconsider if my patch can be applied. Thanks. -Geliang > --- > fs/pstore/Kconfig| 17 ++--- > fs/pstore/platform.c | 16 > 2 files changed, 30 insertions(+), 3 deletions(-) > > diff --git a/fs/pstore/Kconfig b/fs/pstore/Kconfig > index 09c19ef91526..63cf4813559a 100644 > --- a/fs/pstore/Kconfig > +++ b/fs/pstore/Kconfig > @@ -50,12 +50,19 @@ config PSTORE_842_COMPRESS > help > This option enables 842 compression algorithm support. > > +config PSTORE_ZSTD_COMPRESS > + tristate "zstd compression" > + depends on PSTORE > + select CRYPTO_ZSTD > + help > + This option enables zstd compression algorithm support. > + > config PSTORE_COMPRESS > def_bool y > depends on PSTORE > depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||\ > PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \ > -PSTORE_842_COMPRESS > +PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS > > choice > prompt "Default pstore compression algorithm" > @@ -65,8 +72,8 @@ choice > This change be changed at boot with "pstore.compress=..." on > the kernel command line. > > - Currently, pstore has support for 5 compression algorithms: > - deflate, lzo, lz4, lz4hc and 842. > + Currently, pstore has support for 6 compression algorithms: > + deflate, lzo, lz4, lz4hc, 842 and zstd. > > The default compression algorithm is deflate. > > @@ -85,6 +92,9 @@ choice > config PSTORE_842_COMPRESS_DEFAULT > bool "842" if PSTORE_842_COMPRESS > > + config PSTORE_ZSTD_COMPRESS_DEFAULT > + bool "zstd" if PSTORE_ZSTD_COMPRESS > + > endchoice > > config PSTORE_COMPRESS_DEFAULT > @@ -95,6 +105,7 @@ config PSTORE_COMPRESS_DEFAULT > default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT > default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT > default "842" if PSTORE_842_COMPRESS_DEFAULT > + default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT > > config PSTORE_CONSOLE > bool "Log kernel console messages" > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c > index 1143ef351c58..9df8cdc378f5 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -34,6 +34,9 @@ > #if IS_ENABLED(CONFIG_PSTORE_LZ4_COMPRESS) || > IS_ENABLED(CONFIG_PSTORE_LZ4HC_COMPRESS) > #include > #endif > +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) > +#include > +#endif > #include > #include > #include > @@ -192,6 +195,13 @@ static int zbufsize_842(size_t size) > } > #endif > > +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) > +static int zbufsize_zstd(size_t size) > +{ > + return ZSTD_compressBound(size); > +} > +#endif > + > static const struct pstore_zbackend *zbackend __ro_after_init; > > static const struct pstore_zbackend zbackends[] = { > @@ -224,6 +234,12 @@ static const struct pstore_zbackend zbackends[] = { > .zbufsize = zbufsize_842, > .name = "842", > }, > +#endif > +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) > + { > + .zbufsize = zbufsize_zstd, > + .name = "zstd", > + }, > #endif > { } > }; > -- > 2.14.1
[PATCH] pstore: add zstd compression support
This patch added the 6th compression algorithm support for pstore: zstd. Signed-off-by: Geliang Tang --- Depend on 'crypto: Add zstd support' by Nick Terrell --- fs/pstore/Kconfig| 17 ++--- fs/pstore/platform.c | 16 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/fs/pstore/Kconfig b/fs/pstore/Kconfig index 09c19ef91526..63cf4813559a 100644 --- a/fs/pstore/Kconfig +++ b/fs/pstore/Kconfig @@ -50,12 +50,19 @@ config PSTORE_842_COMPRESS help This option enables 842 compression algorithm support. +config PSTORE_ZSTD_COMPRESS + tristate "zstd compression" + depends on PSTORE + select CRYPTO_ZSTD + help + This option enables zstd compression algorithm support. + config PSTORE_COMPRESS def_bool y depends on PSTORE depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||\ PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \ - PSTORE_842_COMPRESS + PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS choice prompt "Default pstore compression algorithm" @@ -65,8 +72,8 @@ choice This change be changed at boot with "pstore.compress=..." on the kernel command line. - Currently, pstore has support for 5 compression algorithms: - deflate, lzo, lz4, lz4hc and 842. + Currently, pstore has support for 6 compression algorithms: + deflate, lzo, lz4, lz4hc, 842 and zstd. The default compression algorithm is deflate. @@ -85,6 +92,9 @@ choice config PSTORE_842_COMPRESS_DEFAULT bool "842" if PSTORE_842_COMPRESS + config PSTORE_ZSTD_COMPRESS_DEFAULT + bool "zstd" if PSTORE_ZSTD_COMPRESS + endchoice config PSTORE_COMPRESS_DEFAULT @@ -95,6 +105,7 @@ config PSTORE_COMPRESS_DEFAULT default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT default "842" if PSTORE_842_COMPRESS_DEFAULT + default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT config PSTORE_CONSOLE bool "Log kernel console messages" diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 1143ef351c58..9df8cdc378f5 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -34,6 +34,9 @@ #if IS_ENABLED(CONFIG_PSTORE_LZ4_COMPRESS) || IS_ENABLED(CONFIG_PSTORE_LZ4HC_COMPRESS) #include #endif +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) +#include +#endif #include #include #include @@ -192,6 +195,13 @@ static int zbufsize_842(size_t size) } #endif +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) +static int zbufsize_zstd(size_t size) +{ + return ZSTD_compressBound(size); +} +#endif + static const struct pstore_zbackend *zbackend __ro_after_init; static const struct pstore_zbackend zbackends[] = { @@ -224,6 +234,12 @@ static const struct pstore_zbackend zbackends[] = { .zbufsize = zbufsize_842, .name = "842", }, +#endif +#if IS_ENABLED(CONFIG_PSTORE_ZSTD_COMPRESS) + { + .zbufsize = zbufsize_zstd, + .name = "zstd", + }, #endif { } }; -- 2.14.1