From 3b59d0b0706dc54b4fdb8bcca06ceb35f497a7e3 Mon Sep 17 00:00:00 2001 From: Dai Zhiwei Date: Fri, 24 Jun 2022 19:33:54 +0800 Subject: [PATCH 1/2] add zlib uadk plugin --- CMakeLists.txt | 7 + cmake/modules/Finduadkzip.cmake | 25 ++ src/CMakeLists.txt | 4 + src/common/legacy_config_opts.h | 1 + src/common/options.cc | 4 + src/compressor/CMakeLists.txt | 9 + src/compressor/Compressor.h | 9 + src/compressor/UadkCompressionAccel.cc | 446 ++++++++++++++++++++++++ src/compressor/UadkCompressionAccel.h | 45 +++ src/compressor/zlib/ZlibCompressor.cc | 29 ++ src/compressor/zlib/ZlibCompressor.h | 12 + src/include/config-h.in.cmake | 3 + src/test/compressor/test_compression.cc | 84 +++++ 13 files changed, 678 insertions(+) create mode 100644 cmake/modules/Finduadkzip.cmake create mode 100644 src/compressor/UadkCompressionAccel.cc create mode 100644 src/compressor/UadkCompressionAccel.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5253399df5..19c4305784 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -279,6 +279,13 @@ if(WITH_QATZIP) set(HAVE_QATZIP ${QATZIP_FOUND}) endif(WITH_QATZIP) +option(WITH_UADKZIP "Enable UADKZIP" OFF) +if(WITH_UADKZIP) + find_package(uadkzip REQUIRED) + set(HAVE_UADKZIP ${UADKZIP_FOUND}) + message("HAVE_UADKZIP" ${HAVE_UADKZIP}) +endif(WITH_UADKZIP) + # needs mds and? XXX option(WITH_LIBCEPHFS "libcephfs client library" ON) diff --git a/cmake/modules/Finduadkzip.cmake b/cmake/modules/Finduadkzip.cmake new file mode 100644 index 0000000000..ca3a699cde --- /dev/null +++ b/cmake/modules/Finduadkzip.cmake @@ -0,0 +1,25 @@ +# - Find uadkzip +# Find the uadkzip compression library and includes +# +# UADK_INCLUDE_DIR - where to find uadkzip.h, etc. +# UADK_LIBRARIES - List of libraries when using uadkzip. +# UADK_FOUND - True if uadkzip found. + +find_path(UADKZIP_INCLUDE_DIR NAMES uadk/wd_comp.h) +message("UADKZIP_INCLUDE_DIR: " ${UADKZIP_INCLUDE_DIR}) + +find_library(UADKZIP_LIBRARIES NAMES wd_comp) +message("UADKZIP_LIBRARIES: " ${UADKZIP_LIBRARIES}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(uadkzip DEFAULT_MSG UADKZIP_LIBRARIES UADKZIP_INCLUDE_DIR) + +if(uadkzip_FOUND AND NOT TARGET uadkzip::uadkzip) + add_library(uadkzip::uadkzip UNKNOWN IMPORTED) + set_target_properties(uadkzip::uadkzip PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${UADKZIP_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${UADKZIP_LIBRARIES}") +endif() + +mark_as_advanced(UADKZIP_LIBRARIES UADKZIP_INCLUDE_DIR) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cc53f9a725..f33398c8ee 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -505,6 +505,10 @@ if(HAVE_QATZIP) list(APPEND ceph_common_deps ${QATZIP_LIBRARIES}) endif() +if(HAVE_UADKZIP) + list(APPEND ceph_common_deps ${UADKZIP_LIBRARIES}) +endif() + if(WITH_DPDK) list(APPEND ceph_common_deps common_async_dpdk) endif() diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index d22061f8a7..10c4d7d206 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -86,6 +86,7 @@ OPTION(compressor_zlib_winsize, OPT_INT) //regular zlib compression winsize, not OPTION(compressor_zstd_level, OPT_INT) //regular zstd compression level OPTION(qat_compressor_enabled, OPT_BOOL) +OPTION(uadk_compressor_enabled, OPT_BOOL) OPTION(plugin_crypto_accelerator, OPT_STR) diff --git a/src/common/options.cc b/src/common/options.cc index 2f28123ba5..cef26003c2 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -815,6 +815,10 @@ std::vector