[PATCH v2 00/10] Introduce new async/sync compression APIs

From: Joonsoo Kim
Date: Tue Jan 26 2016 - 03:15:30 EST


This patchset introduces new compression APIs. This work is started
to support crypto compression in zram [1]. I will restart that work
after this patchset is mereged. Major point of new APIs is that it is
now stateless. Instead of legacy compression API, tfm objects doesn't
embedded any context so we can de/compress concurrently with one tfm
object. Instead, this de/compression context is coupled with the request.
This architecture change will make APIs more flexible and we can naturally
use asynchronous APIs as front-end of synchronous compression algorithm.

Moreover, thanks to this change, we can decompress without context buffer
if algorithm supports it. In this case, we can achieve maximum parallelism
without memory overhead caused by context buffer.

Please let know if there is a problem.

Thanks.

[1]: https://lkml.org/lkml/2015/10/14/83

Joonsoo Kim (9):
crypto/compress: remove unused pcomp interface
crypto: add algorithm type specific flag, CRYPTO_ALG_PRIVATE
crypto/compress: introduce sychronuous compression API
crypto/lzo: support new compression APIs
crypto/lz4: support new compression APIs
crypto/lz4hc: support new compression APIs
crypto/842: support new compression APIs
crypto/deflate: support new compression APIs
crypto/testmgr: add new compression APIs test

Weigang Li (1):
crypto/compress: add asynchronous compression support

crypto/842.c | 85 +++++++-
crypto/Kconfig | 23 +-
crypto/Makefile | 4 +-
crypto/acompress.c | 164 ++++++++++++++
crypto/deflate.c | 110 +++++++++-
crypto/lz4.c | 91 +++++++-
crypto/lz4hc.c | 91 +++++++-
crypto/lzo.c | 95 ++++++--
crypto/pcompress.c | 115 ----------
crypto/scompress.c | 284 ++++++++++++++++++++++++
crypto/testmgr.c | 428 ++++++++++++++++++-------------------
crypto/testmgr.h | 144 -------------
crypto/zlib.c | 381 ---------------------------------
include/crypto/compress.h | 375 ++++++++++++++++++++++++--------
include/crypto/internal/compress.h | 32 +--
include/linux/crypto.h | 9 +-
16 files changed, 1387 insertions(+), 1044 deletions(-)
create mode 100644 crypto/acompress.c
delete mode 100644 crypto/pcompress.c
create mode 100644 crypto/scompress.c
delete mode 100644 crypto/zlib.c

--
1.9.1