From 15c338b8c08d436f4c4531ddfddd82314194b652 Mon Sep 17 00:00:00 2001 From: Ganesh Mahalingam Date: Wed, 31 May 2017 08:10:24 -0700 Subject: [PATCH] Update isa-l to v2.18 This upgrade brings - Complete rewrite of DEFLATE optimizations resulting in 5X better throughput and compression ratios comapred to zlib, lz4, lzo and 2X better decompression performance when compared to zlib. - AVX512 improvements to multi-buffer versions of MD5, SHA-1 and SHA-256 cryptographic hashing functions resulting in 3X better in performance compared to the AVX2 generation. This update improves bluestore compression and potential to improve dedup performance. Testing this patch with objectstore fio yeided a max of 37% increase in compression performance. Fio Params: rw=randwrite,buffer_compress_percentage=50,nr_files=64,direct=1,buffered=0,size=4G,bs=64k Test Avg BlueStore Compression Time v2.16(us) v2.18(us) iodepth=1,jobs=1 241.658 175.476 27.39% iodepth=2,jobs=2 184.174 145.861 20.80% iodepth=4,jobs=4 143.617 104.392 27.31% iodepth=8,jobs=8 146.984 116.505 20.74% iodepth=16,jobs=8 180.167 112.769 37.41% Signed-off-by: Ganesh Mahalingam Signed-off-by: Tushar Gohad --- src/compressor/zlib/CMakeLists.txt | 30 +++++++++++++++++++---------- src/erasure-code/isa/CMakeLists.txt | 2 +- src/isa-l | 2 +- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/compressor/zlib/CMakeLists.txt b/src/compressor/zlib/CMakeLists.txt index 635c730b50b34..1b3bc259a3514 100644 --- a/src/compressor/zlib/CMakeLists.txt +++ b/src/compressor/zlib/CMakeLists.txt @@ -4,21 +4,31 @@ if(HAVE_INTEL_SSE4_1 AND HAVE_BETTER_YASM_ELF64) set(zlib_sources CompressionPluginZlib.cc ZlibCompressor.cc - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/crc32_gzip.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/crc32_gzip_base.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/detect_repeated_char.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df_04.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/flatten_ll.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/huff_codes.c ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/hufftables_c.c - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/crc_utils_01.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/crc_utils_04.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_base.c ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_body_01.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_body_02.asm ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_body_04.asm ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_finish.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_stateless_01.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_stateless_04.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/crc_data.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/crc32_gzip.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/detect_repeated_char.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_base.c + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body_01.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body_02.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body_04.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_finish.asm ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_multibinary.asm - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_stateless_base.c - ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_base.c + ${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/proc_heap.asm + ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/rfc1951_lookup.asm ) else(HAVE_INTEL_SSE4_1 AND HAVE_BETTER_YASM_ELF64) set(zlib_sources diff --git a/src/erasure-code/isa/CMakeLists.txt b/src/erasure-code/isa/CMakeLists.txt index c205e367c26a2..6f9f97d58e056 100644 --- a/src/erasure-code/isa/CMakeLists.txt +++ b/src/erasure-code/isa/CMakeLists.txt @@ -64,7 +64,7 @@ add_library(ec_isa SHARED add_dependencies(ec_isa ${CMAKE_SOURCE_DIR}/src/ceph_ver.h) target_link_libraries(ec_isa ${EXTRALIBS}) set_target_properties(ec_isa PROPERTIES - VERSION 2.16.0 + VERSION 2.18.0 SOVERSION 2 INSTALL_RPATH "") install(TARGETS ec_isa DESTINATION ${erasure_plugin_dir}) diff --git a/src/isa-l b/src/isa-l index 8faa0a2802e95..7e1a337433a34 160000 --- a/src/isa-l +++ b/src/isa-l @@ -1 +1 @@ -Subproject commit 8faa0a2802e95ab5c782d2f7036db92c9d19686e +Subproject commit 7e1a337433a340bc0974ed0f04301bdaca374af6 -- 2.39.5