Re: [PATCH v5 02/12] crypto: acomp - Define new interfaces for compress/decompress batching.
From: Herbert Xu
Date: Sat Feb 22 2025 - 01:34:58 EST
On Sat, Feb 22, 2025 at 07:26:43PM +1300, Barry Song wrote:
>
> After reviewing the zRAM code, I don't see why zram_write_page() needs
> to rely on
> comp_len to call write_incompressible_page().
>
> zram_write_page()
> {
> ret = zcomp_compress(zram->comps[ZRAM_PRIMARY_COMP], zstrm,
> mem, &comp_len);
> kunmap_local(mem);
>
> if (unlikely(ret)) {
> zcomp_stream_put(zstrm);
> pr_err("Compression failed! err=%d\n", ret);
> return ret;
> }
>
> if (comp_len >= huge_class_size) {
> zcomp_stream_put(zstrm);
> return write_incompressible_page(zram, page, index);
> }
> }
Surely any compression error should just be treated as an
incompressible page?
I mean we might wish to report unusual errors in case the
admin or developer can do something about it, but for the
system as a whole it should still continue as if the page
was simply incompressible.
> As long as crypto drivers consistently return -ENOSP or a specific error
> code for dst_buf overflow, we should be able to eliminate the
> 2*PAGE_SIZE buffer.
Yes we could certainly do that.
Cheers,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt