]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
Crypto: Add QAT batch mode
authorFeng Hualong <hualong.feng@intel.com>
Mon, 25 Apr 2022 03:34:49 +0000 (11:34 +0800)
committerFeng Hualong <hualong.feng@intel.com>
Fri, 10 Mar 2023 09:02:42 +0000 (17:02 +0800)
commit0ce6d03bbcd30d516f17646847127b3b0ad649ae
treee96902a43eae938bdbd96c9a183ad920a412fff3
parent943ccfd0bc944f8bc6dcd30c07064f19bfbed203
Crypto: Add QAT batch mode

Now, the current code does not allow qat to exert
its acceleration advantage, but leads to poor performance
of qat. The QAT batch mode is implemented here, so that
the QAT performance can be displayed.

When we scale up the number of concurrent requests and worry about
QAT instance will be bottleneck, we can fall back to CPU.

And there add a parameter to set the times of the number of QAT
instance to wait for free instance, which can avoid QAT to be
not busy and make sure QAT full of utilization as much as possible.

max_queue_size is up to max_requests

Add optional_yield in RGWPutObj_BlockEncrypt and
RGWGetObj_BlockDecrypt. Make it with coroutine and non-coroutine mode.

Signed-off-by: Feng Hualong <hualong.feng@intel.com>
19 files changed:
src/crypto/crypto_accel.h
src/crypto/crypto_plugin.h
src/crypto/isa-l/CMakeLists.txt
src/crypto/isa-l/isal_crypto_accel.cc
src/crypto/isa-l/isal_crypto_accel.h
src/crypto/isa-l/isal_crypto_plugin.h
src/crypto/openssl/CMakeLists.txt
src/crypto/openssl/openssl_crypto_accel.cc
src/crypto/openssl/openssl_crypto_accel.h
src/crypto/openssl/openssl_crypto_plugin.h
src/crypto/qat/CMakeLists.txt
src/crypto/qat/qat_crypto_accel.cc
src/crypto/qat/qat_crypto_accel.h
src/crypto/qat/qat_crypto_plugin.h
src/crypto/qat/qcccrypto.cc
src/crypto/qat/qcccrypto.h
src/rgw/rgw_crypt.cc
src/rgw/rgw_crypt.h
src/rgw/rgw_rest_s3.cc