From: Liu Miaomiao Date: Fri, 14 Jul 2023 06:46:04 +0000 (+0000) Subject: common/compressor: update the interfaces and data structures X-Git-Tag: v19.0.0~750^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0710ca4d42e26d41e428ce360f4898df0e78c6a0;p=ceph.git common/compressor: update the interfaces and data structures Signed-off-by: Liu Miaomiao --- diff --git a/src/compressor/QatAccel.cc b/src/compressor/QatAccel.cc index 561fcc9967f5..de19ccfa358e 100644 --- a/src/compressor/QatAccel.cc +++ b/src/compressor/QatAccel.cc @@ -42,38 +42,28 @@ void QzSessionDeleter::operator() (struct QzSession_S *session) { delete session; } -static bool get_qz_params(const std::string &alg, QzSessionParams_T ¶ms) { +static bool setup_session(const std::string &alg, QatAccel::session_ptr &session) { int rc; - rc = qzGetDefaults(¶ms); - if (rc != QZ_OK) + rc = qzInit(session.get(), QZ_SW_BACKUP_DEFAULT); + if (rc != QZ_OK && rc != QZ_DUPLICATE) return false; - params.direction = QZ_DIR_BOTH; - params.is_busy_polling = true; if (alg == "zlib") { - params.comp_algorithm = QZ_DEFLATE; + QzSessionParamsDeflate_T params; + rc = qzGetDefaultsDeflate(¶ms); + if (rc != QZ_OK) + return false; params.data_fmt = QZ_DEFLATE_RAW; - params.comp_lvl = g_ceph_context->_conf->compressor_zlib_level; + params.common_params.comp_algorithm = QZ_DEFLATE; + params.common_params.comp_lvl = g_ceph_context->_conf->compressor_zlib_level; + params.common_params.direction = QZ_DIR_BOTH; + rc = qzSetupSessionDeflate(session.get(), ¶ms); + if (rc != QZ_OK) + return false; } else { // later, there also has lz4. return false; } - - rc = qzSetDefaults(¶ms); - if (rc != QZ_OK) - return false; - return true; -} - -static bool setup_session(QatAccel::session_ptr &session, QzSessionParams_T ¶ms) { - int rc; - rc = qzInit(session.get(), QZ_SW_BACKUP_DEFAULT); - if (rc != QZ_OK && rc != QZ_DUPLICATE) - return false; - rc = qzSetupSession(session.get(), ¶ms); - if (rc != QZ_OK) { - return false; - } return true; } @@ -113,10 +103,9 @@ QatAccel::session_ptr QatAccel::get_session() { // If there are no available session to use, we try allocate a new // session. - QzSessionParams_T params = {(QzHuffmanHdr_T)0,}; session_ptr session(new struct QzSession_S()); memset(session.get(), 0, sizeof(struct QzSession_S)); - if (get_qz_params(alg_name, params) && setup_session(session, params)) { + if (setup_session(alg_name, session)) { return session; } else { return nullptr;