mbox series

[v2,0/2] pstore: Replace crypto API compression with zlib calls

Message ID 20230707083456.2501913-1-ardb@kernel.org (mailing list archive)
Headers show
Series pstore: Replace crypto API compression with zlib calls | expand

Message

Ard Biesheuvel July 7, 2023, 8:34 a.m. UTC
The pstore layer implements support for compression of kernel log
output, using a variety of compression algorithms provided by the
[deprecated] crypto API 'comp' interface.

This appears to have been somebody's pet project rather than a solution
to a real problem: the original deflate compression is reasonably fast,
compresses well and is comparatively small in terms of code footprint,
and so the flexibility that the crypto API integration provides does
little more than complicate the code for no reason.

So let's get rid of this complexity, and switch back to zlib deflate
using the library interface.

Changes since v1:
- add missing vfree() of zlib compression workspace
- implement improvements and simplifications suggested by Eric
- add missing zlib_in/deflateEnd() calls
- add code comment to document that the use of a library interface is
  deliberate, and doesn't require a future 'upgrade' to the crypto API

Cc: Kees Cook <keescook@chromium.org>
Cc: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
Cc: Eric Biggers <ebiggers@kernel.org>

Ard Biesheuvel (1):
  pstore: Replace crypto API compression with zlib_deflate library calls

Kees Cook (1):
  pstore: Remove worst-case compression size logic

 fs/pstore/Kconfig    | 100 +-----
 fs/pstore/platform.c | 321 ++++++--------------
 2 files changed, 101 insertions(+), 320 deletions(-)

Comments

Guilherme G. Piccoli July 7, 2023, 8:55 p.m. UTC | #1
On 07/07/2023 05:34, Ard Biesheuvel wrote:
> The pstore layer implements support for compression of kernel log
> output, using a variety of compression algorithms provided by the
> [deprecated] crypto API 'comp' interface.
> 
> This appears to have been somebody's pet project rather than a solution
> to a real problem: the original deflate compression is reasonably fast,
> compresses well and is comparatively small in terms of code footprint,
> and so the flexibility that the crypto API integration provides does
> little more than complicate the code for no reason.
> 
> So let's get rid of this complexity, and switch back to zlib deflate
> using the library interface.
> 
> Changes since v1:
> - add missing vfree() of zlib compression workspace
> - implement improvements and simplifications suggested by Eric
> - add missing zlib_in/deflateEnd() calls
> - add code comment to document that the use of a library interface is
>   deliberate, and doesn't require a future 'upgrade' to the crypto API
> [...]

Thanks a lot Ard/Kees, quite a great improvement! I've tested on top of
6.4.0 in the Steam Deck and it's working perfectly fine - no noticeable
extra delay in the log collecting during panic compared to zstd.

Feel free to add (to the series):
Tested-by: Guilherme G. Piccoli <gpiccoli@igalia.com> # Steam Deck

Cheers,


Guilherme