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;
}
// 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;