aports/community/ceph18/10-isal.patch
2024-01-24 11:24:39 +00:00

269 lines
12 KiB
Diff

diff -Nurp a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
--- a/src/common/CMakeLists.txt 2023-07-08 11:35:28.376731489 +0000
+++ b/src/common/CMakeLists.txt 2023-07-08 12:23:51.026696243 +0000
@@ -211,9 +211,8 @@ if(HAVE_INTEL)
list(APPEND crc32_srcs
crc32c_intel_fast.c)
if(HAVE_NASM_X64)
- set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
+# set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
list(APPEND crc32_srcs
- ${PROJECT_SOURCE_DIR}/src/isa-l/crc/crc32_iscsi_00.asm
crc32c_intel_fast_zero_asm.s)
endif(HAVE_NASM_X64)
elseif(HAVE_POWER8)
@@ -229,6 +228,9 @@ elseif(HAVE_ARMV8_CRC)
crc32c_aarch64.c)
endif(HAVE_INTEL)
+if(HAVE_NASM_X64)
+pkg_check_modules(ISAL IMPORTED_TARGET libisal)
+endif(HAVE_NASM_X64)
add_library(crc32 STATIC ${crc32_srcs})
if(HAVE_ARMV8_CRC)
set_target_properties(crc32 PROPERTIES
@@ -237,6 +239,9 @@ endif()
target_link_libraries(crc32
arch)
+if(HAVE_NASM_X64)
+target_link_libraries(crc32 PkgConfig::ISAL)
+endif(HAVE_NASM_X64)
add_library(common_utf8 STATIC utf8.c)
if(HAVE_KEYUTILS)
diff -Nurp a/src/compressor/zlib/CMakeLists.txt b/src/compressor/zlib/CMakeLists.txt
--- a/src/compressor/zlib/CMakeLists.txt 2023-07-08 11:34:14.391732760 +0000
+++ b/src/compressor/zlib/CMakeLists.txt 2023-07-08 12:53:13.150198922 +0000
@@ -5,77 +5,11 @@ if(HAVE_INTEL_SSE4_1 AND HAVE_NASM_X64_A
set(zlib_sources
CompressionPluginZlib.cc
ZlibCompressor.cc
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/hufftables_c.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/flatten_ll.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_inflate.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/huff_codes.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base_aliases.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc64_base.c
- )
- list(APPEND zlib_sources
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_body.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_finish.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body_h1_gr_bt.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_finish.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/rfc1951_lookup.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_sse.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_avx2_4.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_multibinary.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_update_histogram_01.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_update_histogram_04.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_decode_block_stateless_01.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_decode_block_stateless_04.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_inflate_multibinary.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df_04.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df_06.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/proc_heap.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_deflate_hash.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_gen_icf_map_lh1_06.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_gen_icf_map_lh1_04.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_set_long_icf_fg_04.asm
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_set_long_icf_fg_06.asm
)
elseif(HAVE_ARMV8_SIMD)
- set(zlib_asm_sources
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_inflate_multibinary_arm64.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_multibinary_arm64.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_deflate_body_aarch64.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_deflate_finish_aarch64.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/isal_deflate_icf_body_hash_hist.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/isal_deflate_icf_finish_hash_hist.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_set_long_icf_fg.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/isal_update_histogram.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_deflate_hash_aarch64.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_decode_huffman_code_block_aarch64.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_isal_adler32_neon.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/encode_df.S
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/gen_icf_map.S
- )
set(zlib_sources
CompressionPluginZlib.cc
ZlibCompressor.cc
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/hufftables_c.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/flatten_ll.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_inflate.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/huff_codes.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/proc_heap_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_multibinary_aarch64_dispatcher.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base_aliases.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base.c
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc64_base.c
${zlib_asm_sources}
)
set_source_files_properties(${zlib_asm_sources} PROPERTIES
@@ -89,9 +23,13 @@ else()
)
endif()
+pkg_check_modules(ISAL IMPORTED_TARGET libisal)
add_library(ceph_zlib SHARED ${zlib_sources})
target_link_libraries(ceph_zlib ZLIB::ZLIB compressor $<$<PLATFORM_ID:Windows>:ceph-common>)
-target_include_directories(ceph_zlib SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/src/isa-l/include")
+if(HAVE_NASM_X64_AVX2 OR HAVE_ARMV8_SIMD)
+target_link_libraries(ceph_zlib PkgConfig::ISAL)
+endif()
+# target_include_directories(ceph_zlib SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/src/isa-l/include")
set_target_properties(ceph_zlib PROPERTIES
VERSION 2.0.0
SOVERSION 2
diff -Nurp a/src/erasure-code/isa/CMakeLists.txt b/src/erasure-code/isa/CMakeLists.txt
--- a/src/erasure-code/isa/CMakeLists.txt 2023-07-08 11:02:13.833372076 +0000
+++ b/src/erasure-code/isa/CMakeLists.txt 2023-07-08 12:31:55.817169297 +0000
@@ -1,59 +1,10 @@
# ISA
set(isal_src_dir ${CMAKE_SOURCE_DIR}/src/isa-l)
-include_directories(${isal_src_dir}/include)
+# include_directories(${isal_src_dir}/include)
if(HAVE_NASM_X64_AVX2)
- set(CMAKE_ASM_FLAGS "-i ${isal_src_dir}/include/ ${CMAKE_ASM_FLAGS}")
+ # set(CMAKE_ASM_FLAGS "-i ${isal_src_dir}/include/ ${CMAKE_ASM_FLAGS}")
set(isa_srcs
- ${isal_src_dir}/erasure_code/ec_base.c
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_sse.asm
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_sse.asm
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_sse.asm
- ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_sse.asm
- ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_sse.asm
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_sse.asm
- ${isal_src_dir}/erasure_code/gf_2vect_mad_avx2.asm
- ${isal_src_dir}/erasure_code/gf_3vect_mad_avx2.asm
- ${isal_src_dir}/erasure_code/gf_4vect_mad_avx2.asm
- ${isal_src_dir}/erasure_code/gf_5vect_mad_avx2.asm
- ${isal_src_dir}/erasure_code/gf_6vect_mad_avx2.asm
- ${isal_src_dir}/erasure_code/gf_vect_mad_avx2.asm
- ${isal_src_dir}/erasure_code/ec_highlevel_func.c
- ${isal_src_dir}/erasure_code/gf_2vect_mad_avx.asm
- ${isal_src_dir}/erasure_code/gf_3vect_mad_avx.asm
- ${isal_src_dir}/erasure_code/gf_4vect_mad_avx.asm
- ${isal_src_dir}/erasure_code/gf_5vect_mad_avx.asm
- ${isal_src_dir}/erasure_code/gf_6vect_mad_avx.asm
- ${isal_src_dir}/erasure_code/gf_vect_mad_avx.asm
- ${isal_src_dir}/erasure_code/ec_multibinary.asm
- ${isal_src_dir}/erasure_code/gf_2vect_mad_sse.asm
- ${isal_src_dir}/erasure_code/gf_3vect_mad_sse.asm
- ${isal_src_dir}/erasure_code/gf_4vect_mad_sse.asm
- ${isal_src_dir}/erasure_code/gf_5vect_mad_sse.asm
- ${isal_src_dir}/erasure_code/gf_6vect_mad_sse.asm
- ${isal_src_dir}/erasure_code/gf_vect_mad_sse.asm
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx2.asm
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx2.asm
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx2.asm
- ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_avx2.asm
- ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_avx2.asm
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx2.asm
- ${isal_src_dir}/erasure_code/gf_vect_mul_avx.asm
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx.asm
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx.asm
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx.asm
- ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_avx.asm
- ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_avx.asm
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx.asm
- ${isal_src_dir}/erasure_code/gf_vect_mul_sse.asm
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx512.asm
- ${isal_src_dir}/erasure_code/gf_2vect_mad_avx512.asm
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx512.asm
- ${isal_src_dir}/erasure_code/gf_3vect_mad_avx512.asm
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx512.asm
- ${isal_src_dir}/erasure_code/gf_4vect_mad_avx512.asm
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx512.asm
- ${isal_src_dir}/erasure_code/gf_vect_mad_avx512.asm
ErasureCodeIsa.cc
ErasureCodeIsaTableCache.cc
ErasureCodePluginIsa.cc
@@ -61,22 +12,6 @@ if(HAVE_NASM_X64_AVX2)
)
elseif(HAVE_ARMV8_SIMD)
set(isa_srcs
- ${isal_src_dir}/erasure_code/ec_base.c
- ${isal_src_dir}/erasure_code/aarch64/ec_aarch64_highlevel_func.c
- ${isal_src_dir}/erasure_code/aarch64/ec_aarch64_dispatcher.c
- ${isal_src_dir}/erasure_code/aarch64/gf_2vect_dot_prod_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_2vect_mad_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_3vect_dot_prod_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_3vect_mad_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_4vect_dot_prod_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_4vect_mad_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_5vect_dot_prod_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_5vect_mad_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_6vect_mad_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_vect_dot_prod_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_vect_mad_neon.S
- ${isal_src_dir}/erasure_code/aarch64/gf_vect_mul_neon.S
- ${isal_src_dir}/erasure_code/aarch64/ec_multibinary_arm.S
ErasureCodeIsa.cc
ErasureCodeIsaTableCache.cc
ErasureCodePluginIsa.cc
@@ -88,10 +23,14 @@ elseif(HAVE_ARMV8_SIMD)
)
endif()
+pkg_check_modules(ISAL IMPORTED_TARGET libisal)
add_library(ec_isa SHARED
${isa_srcs}
$<TARGET_OBJECTS:erasure_code_objs>)
target_link_libraries(ec_isa ${EXTRALIBS})
+if(HAVE_NASM_X64_AVX2 OR HAVE_ARMV8_SIMD)
+target_link_libraries(ec_isa PkgConfig::ISAL)
+endif()
set_target_properties(ec_isa PROPERTIES
INSTALL_RPATH "")
install(TARGETS ec_isa DESTINATION ${erasure_plugin_dir})
diff -Nurp a/src/erasure-code/isa/ErasureCodeIsa.cc b/src/erasure-code/isa/ErasureCodeIsa.cc
--- a/src/erasure-code/isa/ErasureCodeIsa.cc 2023-10-10 11:01:53.784963054 +0000
+++ b/src/erasure-code/isa/ErasureCodeIsa.cc 2023-10-10 11:02:22.213371017 +0000
@@ -25,7 +25,7 @@ using namespace ceph;
// -----------------------------------------------------------------------------
extern "C" {
-#include "isa-l/include/erasure_code.h"
+#include "isa-l/erasure_code.h"
}
// -----------------------------------------------------------------------------
#define dout_context g_ceph_context
--- a/src/compressor/zlib/ZlibCompressor.cc
+++ b/src/compressor/zlib/ZlibCompressor.cc
@@ -16,7 +16,7 @@
#include "common/debug.h"
#include "ZlibCompressor.h"
#include "osd/osd_types.h"
-#include "isa-l/include/igzip_lib.h"
+#include "isa-l/igzip_lib.h"
// -----------------------------------------------------------------------------
#include <zlib.h>
--- a/src/compressor/zstd/ZstdCompressor.h
+++ b/src/compressor/zstd/ZstdCompressor.h
@@ -16,7 +16,7 @@
#define CEPH_ZSTDCOMPRESSOR_H
#define ZSTD_STATIC_LINKING_ONLY
-#include "zstd/lib/zstd.h"
+#include "zstd.h"
#include "include/buffer.h"
#include "include/encoding.h"