Message ID | 20240220064414.262582-2-21cnbao@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Herbert Xu |
Headers | show |
Series | mm/zswap & crypto/compress: remove a couple of memcpy | expand |
On Tue, Feb 20, 2024 at 07:44:12PM +1300, Barry Song wrote: > From: Barry Song <v-songbaohua@oppo.com> > > acomp's users might want to know if acomp is really async to > optimize themselves. One typical user which can benefit from > exposed async stat is zswap. > > In zswap, zsmalloc is the most commonly used allocator for > (and perhaps the only one). For zsmalloc, we cannot sleep > while we map the compressed memory, so we copy it to a > temporary buffer. By knowing the alg won't sleep can help > zswap to avoid the need for a buffer. This shows noticeable > improvement in load/store latency of zswap. > > Signed-off-by: Barry Song <v-songbaohua@oppo.com> > --- > include/crypto/acompress.h | 6 ++++++ > 1 file changed, 6 insertions(+) Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Thanks,
diff --git a/include/crypto/acompress.h b/include/crypto/acompress.h index 574cffc90730..80e243611fe2 100644 --- a/include/crypto/acompress.h +++ b/include/crypto/acompress.h @@ -160,6 +160,12 @@ static inline void acomp_request_set_tfm(struct acomp_req *req, req->base.tfm = crypto_acomp_tfm(tfm); } +static inline bool acomp_is_async(struct crypto_acomp *tfm) +{ + return crypto_comp_alg_common(tfm)->base.cra_flags & + CRYPTO_ALG_ASYNC; +} + static inline struct crypto_acomp *crypto_acomp_reqtfm(struct acomp_req *req) { return __crypto_acomp_tfm(req->base.tfm);