From: Sergey Senozhatsky <senozhatsky@chromium.org>
To: Barry Song <21cnbao@gmail.com>
Cc: Yosry Ahmed <yosry.ahmed@linux.dev>,
Minchan Kim <minchan@kernel.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Herbert Xu <herbert@gondor.apana.org.au>,
"Sridhar, Kanchana P" <kanchana.p.sridhar@intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"hannes@cmpxchg.org" <hannes@cmpxchg.org>,
"nphamcs@gmail.com" <nphamcs@gmail.com>,
"chengming.zhou@linux.dev" <chengming.zhou@linux.dev>,
"usamaarif642@gmail.com" <usamaarif642@gmail.com>,
"ryan.roberts@arm.com" <ryan.roberts@arm.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
"davem@davemloft.net" <davem@davemloft.net>,
"clabbe@baylibre.com" <clabbe@baylibre.com>,
"ardb@kernel.org" <ardb@kernel.org>,
"ebiggers@google.com" <ebiggers@google.com>,
"surenb@google.com" <surenb@google.com>,
"Accardi, Kristen C" <kristen.c.accardi@intel.com>,
"Feghali, Wajdi K" <wajdi.k.feghali@intel.com>,
"Gopal, Vinodh" <vinodh.gopal@intel.com>
Subject: Re: [PATCH v5 02/12] crypto: acomp - Define new interfaces for compress/decompress batching.
Date: Sat, 22 Feb 2025 21:31:41 +0900 [thread overview]
Message-ID: <dhj6msbvbyoz7iwrjnjkvoljvkh2pgxrwzqf67gdinverixvr5@e3ld7oeketgw> (raw)
In-Reply-To: <CAGsJ_4yVFG-C=nJWp8xda3eLZENc4dpU-d4VyFswOitiXe+G_Q@mail.gmail.com>
On (25/02/22 19:26), 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 && ret != -ENOSP)) {
> zcomp_stream_put(zstrm);
> pr_err("Compression failed! err=%d\n", ret);
> return ret;
> }
>
> if (comp_len >= huge_class_size || ret) {
> zcomp_stream_put(zstrm);
> return write_incompressible_page(zram, page, index);
> }
> }
Sorry, I'm slower than usual now, but why should we? Shouldn't compression
algorithms just never fail, even on 3D videos, because otherwise they won't
be able to validate their Weissman score or something :)
On a serious note - what is the use-case here? Is the failure here due to
some random "cosmic rays" that taint the compression H/W? If so then what
makes us believe that it's uni-directional? What if it's decompression
that gets busted and then you can't decompress anything previously stored
compressed and stored in zsmalloc. Wouldn't it be better in this case
to turn the computer off and on again?
The idea behind zram's code is that incompressible pages are not unusual,
they are quite usual, in fact, It's not necessarily that the data grew
in size after compression, the data is incompressible from zsmalloc PoV.
That is the algorithm wasn't able to compress a PAGE_SIZE buffer to an
object smaller than zsmalloc's huge-class-watermark (around 3600 bytes,
depending on zspage chain size). That's why we look at the comp-len.
Anything else is an error, perhaps a pretty catastrophic error.
> 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.
>
> My point is:
> 1. All drivers must be capable of handling dst_buf overflow.
> 2. All drivers must return a consistent and dedicated error code for
> dst_buf overflow.
Sorry, where do these rules come from?
> +Minchan, Sergey,
> Do you think we can implement this change in zRAM by using PAGE_SIZE instead
> of 2 * PAGE_SIZE?
Sorry again, what problem are you solving?
next prev parent reply other threads:[~2025-02-22 12:31 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-21 6:31 [PATCH v5 00/12] zswap IAA compress batching Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 01/12] crypto: acomp - Add synchronous/asynchronous acomp request chaining Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 02/12] crypto: acomp - Define new interfaces for compress/decompress batching Kanchana P Sridhar
2024-12-28 11:46 ` Herbert Xu
2025-01-06 17:37 ` Sridhar, Kanchana P
2025-01-06 23:24 ` Yosry Ahmed
2025-01-07 1:36 ` Sridhar, Kanchana P
2025-01-07 1:46 ` Yosry Ahmed
2025-01-07 2:06 ` Herbert Xu
2025-01-07 3:10 ` Yosry Ahmed
2025-01-08 1:38 ` Herbert Xu
2025-01-08 1:43 ` Yosry Ahmed
2025-02-16 5:17 ` Herbert Xu
2025-02-20 17:32 ` Yosry Ahmed
2025-02-22 6:26 ` Barry Song
2025-02-22 6:34 ` Herbert Xu
2025-02-22 6:41 ` Barry Song
2025-02-22 6:52 ` Herbert Xu
2025-02-22 7:13 ` Barry Song
2025-02-22 7:22 ` Herbert Xu
2025-02-22 8:21 ` Barry Song
2025-02-24 21:49 ` Yosry Ahmed
2025-02-27 3:05 ` Barry Song
2025-02-22 12:31 ` Sergey Senozhatsky [this message]
2025-02-22 14:27 ` Sergey Senozhatsky
2025-02-23 0:14 ` Herbert Xu
2025-02-23 2:09 ` Sergey Senozhatsky
2025-02-23 2:52 ` Herbert Xu
2025-02-23 3:12 ` Sergey Senozhatsky
2025-02-23 3:38 ` Herbert Xu
2025-02-23 4:02 ` Sergey Senozhatsky
2025-02-23 6:04 ` Herbert Xu
2025-02-22 16:24 ` Barry Song
2025-02-23 0:24 ` Herbert Xu
2025-02-23 1:57 ` Sergey Senozhatsky
2025-01-07 2:04 ` Herbert Xu
2024-12-21 6:31 ` [PATCH v5 03/12] crypto: iaa - Add an acomp_req flag CRYPTO_ACOMP_REQ_POLL to enable async mode Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 04/12] crypto: iaa - Implement batch_compress(), batch_decompress() API in iaa_crypto Kanchana P Sridhar
2024-12-22 4:07 ` kernel test robot
2024-12-21 6:31 ` [PATCH v5 05/12] crypto: iaa - Make async mode the default Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 06/12] crypto: iaa - Disable iaa_verify_compress by default Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 07/12] crypto: iaa - Re-organize the iaa_crypto driver code Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 08/12] crypto: iaa - Map IAA devices/wqs to cores based on packages instead of NUMA Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 09/12] crypto: iaa - Distribute compress jobs from all cores to all IAAs on a package Kanchana P Sridhar
2024-12-21 6:31 ` [PATCH v5 10/12] mm: zswap: Allocate pool batching resources if the crypto_alg supports batching Kanchana P Sridhar
2025-01-07 0:58 ` Yosry Ahmed
2025-01-08 3:26 ` Sridhar, Kanchana P
2025-01-08 4:16 ` Yosry Ahmed
2024-12-21 6:31 ` [PATCH v5 11/12] mm: zswap: Restructure & simplify zswap_store() to make it amenable for batching Kanchana P Sridhar
2025-01-07 1:16 ` Yosry Ahmed
2025-01-08 3:57 ` Sridhar, Kanchana P
2025-01-08 4:22 ` Yosry Ahmed
2024-12-21 6:31 ` [PATCH v5 12/12] mm: zswap: Compress batching with Intel IAA in zswap_store() of large folios Kanchana P Sridhar
2025-01-07 1:19 ` Yosry Ahmed
2025-01-07 1:44 ` [PATCH v5 00/12] zswap IAA compress batching Yosry Ahmed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=dhj6msbvbyoz7iwrjnjkvoljvkh2pgxrwzqf67gdinverixvr5@e3ld7oeketgw \
--to=senozhatsky@chromium.org \
--cc=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=ardb@kernel.org \
--cc=chengming.zhou@linux.dev \
--cc=clabbe@baylibre.com \
--cc=davem@davemloft.net \
--cc=ebiggers@google.com \
--cc=hannes@cmpxchg.org \
--cc=herbert@gondor.apana.org.au \
--cc=kanchana.p.sridhar@intel.com \
--cc=kristen.c.accardi@intel.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=nphamcs@gmail.com \
--cc=ryan.roberts@arm.com \
--cc=surenb@google.com \
--cc=usamaarif642@gmail.com \
--cc=vinodh.gopal@intel.com \
--cc=wajdi.k.feghali@intel.com \
--cc=yosry.ahmed@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox