On Thu, Feb 22, 2024 at 12:12 AM Barry Song <21cnbao@xxxxxxxxx> wrote: > > From: Barry Song <v-songbaohua@xxxxxxxx> > > 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@xxxxxxxx> > Acked-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Acked-by: Chris Li <chrisl@xxxxxxxxxx> Chris > --- > include/crypto/acompress.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > 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); > -- > 2.34.1 >