]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/isa-l/Release_notes.txt
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / isa-l / Release_notes.txt
1 v2.24 Intel Intelligent Storage Acceleration Library Release Notes
2 ==================================================================
3
4 RELEASE NOTE CONTENTS
5 1. KNOWN ISSUES
6 2. FIXED ISSUES
7 3. CHANGE LOG & FEATURES ADDED
8
9 1. KNOWN ISSUES
10 ----------------
11
12 * Perf tests do not run in Windows environment.
13
14 * 32-bit lib is not supported in Windows.
15
16 2. FIXED ISSUES
17 ---------------
18 v2.24
19
20 * Fix for crc32_iscsi(). Potential read-over for small buffer. For an input
21 buffer length of less than 8 bytes and aligned to an 8 byte boundary, function
22 could read past length. Previously had the possibility to cause a seg fault
23 only for length 0 and invalid buffer passed. Calculated CRC is unchanged.
24
25 * Fix for compression/decompression of > 4GB files. For streaming compression
26 of extremely large files, the total_out parameter would wrap and could
27 potentially flag an otherwise valid lookback distance as being invalid.
28 Total_out is still 32bit for zlib compatibility. No inconsistent compressed
29 buffers were generated by the issue.
30
31 v2.23
32
33 * Fix for histogram generation base function.
34 * Fix library build warnings on macOS.
35 * Fix igzip to use bsf instruction when tzcnt is not available.
36
37 v2.22
38
39 * Fix ISA-L builds for other architectures. Base function and examples
40 sanitized for non-IA builds.
41
42 * Fix fuzz test script to work with llvm 6.0 builtin libFuzz.
43
44 v2.20
45
46 * Inflate total_out behavior corrected for in-progress decompression.
47 Previously total_out represented the total bytes decompressed into the output
48 buffer or temp internal buffer. This is changed to be only the bytes put into
49 the output buffer.
50
51 * Fixed issue with isal_create_hufftables_subset. Affects semi-dynamic
52 compression use case when explicitly creating hufftables from histogram. The
53 _hufftables_subset function could fail to generate length symbols for any
54 length that were never seen.
55
56 v2.19
57
58 * Fix erasure code test that violates rs matrix bounds.
59
60 * Fix 0 length file and looping errors in igzip_inflate_test.
61
62 v2.18
63
64 * Mac OS X/darwin systems no longer require the --target=darwin config option.
65 The autoconf canonical build should detect.
66
67 v2.17
68
69 * Fix igzip using 32K window and a shared object
70
71 * Fix igzip undefined instruction error on Nehalem.
72
73 * Fixed issue in crc performance tests where OS optimizations turned cold cache
74 tests into warm tests.
75
76 v2.15
77
78 * Fix for windows register save in gf_6vect_mad_avx2.asm. Only affects windows
79 versions of ec_encode_data_update() running with AVX2. A GP register was not
80 properly restored resulting in corruption on return.
81
82 v2.14
83
84 * Building in unit directories is no longer supported removing the issue of
85 leftover object files causing the top-level make build to fail.
86
87 v2.10
88
89 * Fix for windows register save overlap in gf_{3-6}vect_dot_prod_sse.asm. Only
90 affects windows versions of erasure code. GP register saves/restore were
91 pushed to same stack area as XMM.
92
93 3. CHANGE LOG & FEATURES ADDED
94 ------------------------------
95 v2.24
96
97 * Igzip small file performance improvements and new features.
98 - Better performance on small files.
99 - New gzip/zlib header and trailer handling.
100 - New gzip/zlib header parsing helper functions.
101 - New user-space compression/decompression tool igzip.
102
103 * New mem unit added with first function isal_zero_detect().
104
105 v2.23
106
107 * Igzip inflate (decompression) performance improvements.
108 - Implemented multi-byte decode for inflate. Decode can pack up to three
109 symbols into the decode table making some compressed streams decompress much
110 faster depending on the prevalence of short codes.
111
112 v2.22
113
114 * Igzip: AVX2 version of level 3 compression added.
115
116 * Erasure code examples
117 - New examples for standard EC encode and decode.
118 - Example of piggyback EC encode and decode.
119
120 v2.21
121
122 * Igzip improvements
123 - New compression levels added. ISA-L fast deflate now has more levels to
124 balance speed vs. target compression level. Level 0, 1 are as in previous
125 generations. New levels 2 & 3 target higher compression roughly comparable
126 to zlib levels 2-3. Level 3 is currently only optimized for processors with
127 AVX512 instructions.
128
129 * New T10dif & copy function - crc16_t10dif_copy()
130 - CRC and copy was added to emulate T10dif operations such as DIF insert and
131 strip. This function stitches together CRC and memcpy operations
132 eliminating an extra data read.
133
134 * CRC32 iscsi performance improvements
135 - Fixes issue under some distributions where warm cache performance was
136 reduced.
137
138 v2.20
139
140 * Igzip improvements
141 - Optimized deflate_hash in compression functions.
142 Improves performance of using preset dictionary.
143 - Removed alignment restrictions on input structure.
144
145 v2.19
146
147 * Igzip improvements
148
149 - Add optimized Adler-32 checksum.
150
151 - Implement zlib compression format.
152
153 - Add stateful dictionary support.
154
155 - Add struct reset functions for both deflate and inflate.
156
157 * Reflected IEEE format CRC32 is released out. Function interface is named
158 crc32_gzip_refl.
159
160 * Exact work condition of Erasure Code Reed-Solomon Matrix is determined by new
161 added program gen_rs_matrix_limits.
162
163 v2.18
164
165 * New 2-pass fully-dynamic deflate compression (level -1). ISA-L fast deflate
166 now has two levels. Level 0 (default) is the same as previous generations.
167 Setting to level 1 will switch to the fully-dynamic compression that will
168 typically reach higher compression ratios.
169
170 * RAID AVX512 functions.
171
172 v2.17
173
174 * New fast decompression (inflate)
175
176 * Compression improvements (deflate)
177 - Speed and compression ratio improvements.
178 - Fast custom Huffman code generation.
179 - New features:
180 * Run-time option of gzip crc calculation and headers/trailer.
181 * Choice of static header (BTYPE 01) blocks.
182 * LARGE_WINDOW, 32K history, now default.
183 * Stateless full flush mode.
184
185 * CRC64
186 - Six new 64-bit polynomials supported. Normal and reflected versions of ECMA,
187 ISO and Jones polynomials.
188
189 v2.16
190
191 * Units added: crc, raid, igzip (deflate compression).
192
193 v2.15
194
195 * Erasure code updates. New AVX512 versions.
196
197 * Nasm support. ISA-L ported to build with nasm or yasm assembler.
198
199 * Windows DLL support. Windows builds DLL by default.
200
201 v2.14
202
203 * Autoconf and autotools build allows easier porting to additional systems.
204 Previous make system still available to embedded users with Makefile.unx.
205
206 * Includes update for building on Mac OS X/darwin systems. Add --target=darwin
207 to ./configure step.
208
209 v2.13
210
211 * Erasure code improvments
212 - 32-bit port of optimized gf_vect_dot_prod() functions. This makes
213 ec_encode_data() functions much faster on 32-bit processors.
214 - Avoton performance improvements. Performance on Avoton for
215 gf_vect_dot_prod() and ec_encode_data() can improve by as much as 20%.
216
217 v2.11
218
219 * Incremental erasure code. New functions added to erasure code to handle
220 single source update of code blocks. The function ec_encode_data_update()
221 works with parameters similar to ec_encode_data() but are called incrementally
222 with each source block. These versions are useful when source blocks are not
223 all available at once.
224
225 v2.10
226
227 * Erasure code updates
228 - New AVX and AVX2 support functions.
229 - Changes min len requirement on gf_vect_dot_prod() to 32 from 16.
230 - Tests include both source and parity recovery with ec_encode_data().
231 - New encoding examples with Vandermonde or Cauchy matrix.
232
233 v2.8
234
235 * First open release of erasure code unit that is part of ISA-L.