[v2,0/3] mm/zswap & crypto/acompress: remove a couple of memcpy

Message ID 20240216040815.114202-1-21cnbao@gmail.com
Headers
Series mm/zswap & crypto/acompress: remove a couple of memcpy |

Message

Barry Song Feb. 16, 2024, 4:08 a.m. UTC
  From: Barry Song <v-songbaohua@oppo.com>

The patchset removes a couple of memcpy in zswap and crypto
to improve zswap's performance.

Thanks for Chengming Zhou's test and perf data.
Quote from Chengming,
 I just tested these three patches on my server, found improvement in the
 kernel build testcase on a tmpfs with zswap (lz4 + zsmalloc) enabled.
 
         mm-stable 501a06fe8e4c  patched
 real    1m38.028s               1m32.317s
 user    19m11.482s              18m39.439s
 sys     19m26.445s              17m5.646s

As zswap is the direct use of this patchset and zswap benefits from
this series, It is probably better for this patchset to go through
Andrew's mm tree than Herbert's crypto tree if there is no objection
from Herbert.

-v2:
  * add flush_dcache_page() in scomp_acomp_comp_decomp() according to
    Herbert's suggestion, thanks!
  * collect Reviewed-by of Nhat, thanks!
  * rename is_async to is_sleepable according to Yosry's suggestion,
    thanks!

Barry Song (3):
  crypto: introduce acomp_is_sleepable to expose if a acomp has a scomp
    backend
  mm/zswap: remove the memcpy if acomp is not sleepable
  crypto: scompress: remove memcpy if sg_nents is 1

 crypto/acompress.c         |  8 ++++++++
 crypto/scompress.c         | 36 +++++++++++++++++++++++++++++-------
 include/crypto/acompress.h |  9 +++++++++
 mm/zswap.c                 |  6 ++++--
 4 files changed, 50 insertions(+), 9 deletions(-)