Commit Graph

650 Commits

Author SHA1 Message Date
Roy Oursler
9d53af0c7c igzip: Improve LARGE_WINDOW and change that option to be default.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:36:31 -07:00
Roy Oursler
ee2e2bce4f igzip: Improving igzip_update_histogram
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:31:23 -07:00
Roy Oursler
22bd9eef65 igzip: Optimize igzip
Remove conditional move and reorder operations to increase speed.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:30:56 -07:00
Roy Oursler
d06e14b937 igzip: Port update_histogram and decode_huffman_code_block to windows
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:17:54 -07:00
Roy Oursler
340e0f99df igzip: Implement stateful inflate.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:17:07 -07:00
Roy Oursler
6b2bedfe28 igzip: Fix to run on SSE
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:16:44 -07:00
Roy Oursler
a1981da94e igzip: Create stateless FULL_FLUSH mode
Add flush modes to isal_deflate_stateless. IGZIP_USE_GZIP_FORMAT is not
supported because of limitations imposed by the statelessness.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:16:11 -07:00
Roy Oursler
b25ef61a57 igzip: Fix warning for igzip_update_histogram when compiled with LARGE_WINDOW.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:15:51 -07:00
Roy Oursler
511a5dea5b igzip: Add missing include to igzip_check.c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:14:03 -07:00
Roy Oursler
869712d389 igzip: Rename inflate.asm and fix Makefile.am so that Makefile.unx works
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:12:53 -07:00
Roy Oursler
60d9a30f4e igzip: Rename small_code_lookup
Rename small_code_lookup to short_code_lookup to match naming of
long_code_lookup.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:01:46 -07:00
Roy Oursler
464476003a igzip: Separate inflate_huffman_code into a large and small datastructure.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:01:21 -07:00
Roy Oursler
e64bc2ed37 igzip: Improve make_inflate_huffcode algorithm.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:00:57 -07:00
Roy Oursler
456be4cfc1 igzip: Rearrange inflate_state
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:53:34 -07:00
Roy Oursler
5a7c97a930 igzip: Document inflate_huff_code data structure.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:52:56 -07:00
Roy Oursler
40b5104397 igzip: More optimizations by speeding up rarely taken branch
For some reason optimizing the rarely taken branch speeds up the program.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:51:22 -07:00
Roy Oursler
84ffaead82 igzip: Optimize inflate more
Some general optimizations, including speculatively loading the distance huffman
code and interleaving inflate_in_load with other instructions.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:48:47 -07:00
Roy Oursler
6fc9029f83 inflate: Optimize inflate_stateless
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:47:38 -07:00
Roy Oursler
c233946b0a igzip: Add some compile time options to igzip_inflate_perf
Allow for running igzip_inflate_perf with zlib -1, zlib -9, and igzip
compression. Also add a parameter to allow comparing igzip inflate's performance
to zlib inflate's performance.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:47:01 -07:00
Roy Oursler
09a5a243bf igzip: Implement statelesss inflate in assembly
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:45:53 -07:00
Roy Oursler
17dac9f641 igzip: Implement xmm loads to preload data in update_histogram
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:07:28 -07:00
Roy Oursler
4d40cd360d igzip: Speed up hash table initialization in igzip_update_histogram.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:02:23 -07:00
Roy Oursler
39ce31de30 igzip: Fix minor bug in igzip_rand_test
Stop igzip_rand_test from trying to free a null pointer.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:01:40 -07:00
Roy Oursler
af9c0c0f46 igzip: update update_hash to match stateless and stateful compression.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:01:01 -07:00
Roy Oursler
f97de75fc6 igzip: Port improvements to stateless compress to stateful compress
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 18:40:27 -07:00
Roy Oursler
eb1b7788d0 igzip: Move code in igzip_stateless to hide latencies more in ivybridge.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:23:29 -07:00
Roy Oursler
cf30138c7b igzip: Load memory into xmm in stateless registers
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:22:52 -07:00
Roy Oursler
4d1fe78bfa igzip: Modify stateless hash updating to match the length 4 short match
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:19:15 -07:00
Roy Oursler
31814483c0 igzip: Create assembly version of isal_update_histogram
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:16:55 -07:00
Roy Oursler
7c91df5e50 igzip: add macros for shrx, shlx, and bzhi instructions on old architectures
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:11:06 -07:00
Roy Oursler
bbc886cf01 igzip: Modify igzip to ignore matches which are shorter than 4
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:07:45 -07:00
Greg Tucker
45311ea249 Change common and igzip multibinary check from sse4.1 to sse4.2
SSE optimized compression function is using crc32 instruction that is in SSE 4.2
not SSE4.1 as stated.  Fixes incorect choice on core 2 duo that is SSE 4.1 only.

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:05:23 -07:00
Xiaodong Liu
b34cb054fd build: Fix an include path to be srcdir relative
Allows configure to again build in an external directory.  When building ISAL in
an external path, assembler or compiler needs relative include paths.

Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 16:54:40 -07:00
Greg Tucker
489db7e913 doc: Update readme with short description of isa-l content
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-07-28 14:59:36 -07:00
Greg Tucker
1abf68b7db igzip: Fix missing .note.gnu-stack for non-executable stack
One asm file in the source list for compression missed an include that adds
.note.gnu-stack.  Without it an executable could be marked has having an
executable stack and miss some hardware protections.

Reported-by: Ondřej Nový <novy@ondrej.org>
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-07-11 14:42:25 -07:00
Greg Tucker
8faa0a2802 Update travis-cl test script to avoid old nasm
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-06-17 15:06:12 -07:00
Greg Tucker
9331ddca3b Update build and release notes for v2.16
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-06-10 17:04:05 -07:00
Greg Tucker
10f07a0c51 Add README.md to distribution
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-06-10 17:04:05 -07:00
Greg Tucker
660f49b02d Add data compression unit
Include fast DEFLATE compatable compression functions.

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-06-10 17:03:38 -07:00
Greg Tucker
61164e105b Add crc unit
New crc unit adds three different polynomials: T10dif, ieee and iscsi.

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-05-03 15:02:29 -07:00
Greg Tucker
d6c5e9620d Add raid unit
New raid unit adds source for optimized xor and P+Q functions.

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-04-26 15:58:49 -07:00
Greg Tucker
fce681adb4 Fix for missing file in extra dist
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-03-02 19:23:33 -07:00
Ondřej Nový
8c7c1ba59b Travis CI.
Signed-off-by: Ondřej Nový <novy@ondrej.org>
2016-03-02 18:11:11 -07:00
Ondřej Nový
c5dd20e075 Fixed markdown in README
Signed-off-by: Ondřej Nový <novy@ondrej.org>
2016-03-01 15:45:16 -07:00
Greg Tucker
ef7ff6c4f7 Rename license to standard file name
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-02-25 17:32:34 -07:00
Greg Tucker
8a5a7d124d doc: Update readme with autotools and nmake info
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-02-25 17:32:34 -07:00
Greg Tucker
f7ee664dc0 Remove warnings due to unexported functions
The avx512 functions are not directly exported and this could cause warnings
when unit tests try to link to them directly.

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-02-25 17:32:34 -07:00
Greg Tucker
a5b324d2cd Add avx512 versions of ec_encode_data
- Includes gf_nvect_dot_prod, gf_nvect_mad functions
 - Change ec multibinary to use common macros
 - Autoconf checks for nasm or yasm support and picks if available
 - Leave out compile of any avx512 code if assembler not available

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-02-25 17:32:34 -07:00
Greg Tucker
bc4dfc9bbc Convert files to build with nasm or yasm
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-02-25 17:32:34 -07:00
Greg Tucker
00c1efc109 Initial commit isa-l v2.14.1
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-02-24 14:54:34 -07:00