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