Commit Graph

228 Commits (8f1bf0fdf588c2529e52d3f88d25213a89363f09)

Author SHA1 Message Date
Danny Al-Gaaf 1aef8694bc gf_w64.c: fix integer overflow
Fix for Coverity issue (from Ceph):

CID 1193088 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)
 overflow_before_widen: Potentially overflowing expression 1 << g_s with type
 int (32 bits, signed) is evaluated using 32-bit arithmetic, and then used in
 a context that expects an expression of type uint64_t (64 bits, unsigned).

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-06-18 09:00:03 +02:00
Danny Al-Gaaf e127bb1fb9 gf_w64.c: fix integer overflow
Fix for Coverity issue (from Ceph):

CID 1193087 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)
 overflow_before_widen: Potentially overflowing expression 1 << g_r with type
  int (32 bits, signed) is evaluated using 32-bit arithmetic, and then used
  in a context that expects an expression of type uint64_t (64 bits, unsigned).

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-06-18 08:58:20 +02:00
Danny Al-Gaaf 98e5e37159 gf_w64.c: fix integer overflow
Fix for Coverity issue (from Ceph):

CID 1193086 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)
 overflow_before_widen: Potentially overflowing expression 1 << g_r with type
  int (32 bits, signed) is evaluated using 32-bit arithmetic, and then used in
  a context that expects an expression of type uint64_t (64 bits, unsigned).

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-06-18 08:55:49 +02:00
Danny Al-Gaaf 7972291e1f src/gf_w128.c: remove dead code and unused variable
Fix for Coverity issue:

CID 1297812 (#1 of 1): Constant variable guards dead code (DEADCODE)
 dead_error_begin: Execution cannot reach this statement: fprintf(stderr,
  "Code conta....
 Local variable no_default_flag is assigned only once, to a constant
  value, making it effectively constant throughout its scope. If this
  is not the intent, examine the logic to see if there is a missing
  assignment that would make no_default_flag not remain constant.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-06-17 10:46:44 +02:00
Danny Al-Gaaf da671b4908 src/gf_w64.c: remove dead code
Fix for Coverity issue:

CID 1297852 (#1 of 1): 'Constant'; variable guards dead code (DEADCODE)
 dead_error_begin: Execution cannot reach this statement:
  fprintf(stderr, "Code conta....
 Local variable no_default_flag is assigned only once, to a constant value,
  making it effectively constant throughout its scope. If this is not the
  intent, examine the logic to see if there is a missing assignment that
  would make no_default_flag not remain constant.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-06-17 10:46:21 +02:00
Loic Dachary 547f67ec98 manual: convert from PDF to HTML
It makes it easier to update.

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-01-14 16:15:27 +01:00
KMG 5f31e2719d Merge branch 'wip-documentation' into 'master'
jerasure.org is http, not https

See merge request !4
2015-01-08 14:59:07 +00:00
Loic Dachary 15ce8650c7 jerasure.org is http, not https
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-12-29 15:16:31 +01:00
KMG dd5389542e Merge branch 'wip-dirstamp-ignore' into 'master'
dirstamp ignore

See merge request !1
2014-12-29 03:27:23 +00:00
KMG 9a652166c4 Merge branch 'wip-exit-v2' into 'master'
exit v2

See merge request !2
2014-12-29 03:27:02 +00:00
KMG 695d83ea59 Merge branch 'wip-documentation' into 'master'
documentation

updates to replace URLs that do not contain useful information

See merge request !3
2014-12-29 03:26:44 +00:00
Loic Dachary 58eebabd20 documentation: update with jerasure.org new home
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-12-25 11:55:49 +01:00
Loic Dachary cbbf35b6d2 Revert "Removed PDF from the repo and added a note in the README that describes how to"
This reverts commit 9311b4fc10.
2014-12-25 11:51:38 +01:00
Greg Farnum 79f34a1b46 gitignore: add src/.dirstamp
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2014-12-25 00:56:32 +01:00
Loic Dachary e7131cfd85 use assert(0) instead of exit(1)
When a fatal error (unaligned memory etc.) is detected, gf-complete should
assert(3) instead of exit(3) to give a chance to the calling program to
catch the exception and display a stack trace. Although it is possible
for gdb to display the stack trace and break on exit, libraries are not
usually expected to terminate the calling program in this way.

Signed-off-by: Loic Dachary <loic@dachary.org>
(cherry picked from commit 29427efac2)
2014-12-15 13:47:47 +01:00
kmgreen2 e0e400aaf6 Merge pull request #1 from dachary/wip-assert
use assert(0) instead of exit(1)
2014-12-06 08:09:55 -08:00
Loic Dachary 29427efac2 use assert(0) instead of exit(1)
When a fatal error (unaligned memory etc.) is detected, gf-complete should
assert(3) instead of exit(3) to give a chance to the calling program to
catch the exception and display a stack trace. Although it is possible
for gdb to display the stack trace and break on exit, libraries are not
usually expected to terminate the calling program in this way.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-12-02 00:27:27 +01:00
Kevin Greenan 70dd94ae38 Merged in jannau/gf-complete/neon (pull request #25)
arm neon optimisations
2014-10-24 14:19:31 -07:00
Janne Grunau 6fdd8bc3d3 arm: NEON optimisations for gf_w64
Optimisations for 4,64 split table region multiplications. Only used on
ARMv8-A since it is not faster on ARMv7-A.
2014-10-24 14:54:55 +02:00
Janne Grunau 370c88b901 arm: NEON optimisations for gf_w32
Optimisations for 4,32 split table multiplications.

Selected time_tool.sh results on a 1.7 GHz cortex-a9:
Region Best (MB/s):   346.67   W-Method: 32 -m SPLIT 32 4 -r SIMD -
Region Best (MB/s):    92.89   W-Method: 32 -m SPLIT 32 4 -r NOSIMD -
Region Best (MB/s):   258.17   W-Method: 32 -m SPLIT 32 4 -r SIMD -r ALTMAP -
Region Best (MB/s):   162.00   W-Method: 32 -m SPLIT 32 8 -
Region Best (MB/s):   160.53   W-Method: 32 -m SPLIT 8 8 -
Region Best (MB/s):    32.74   W-Method: 32 -m COMPOSITE 2 - -
Region Best (MB/s):   199.79   W-Method: 32 -m COMPOSITE 2 - -r ALTMAP -
2014-10-24 14:54:27 +02:00
Janne Grunau 474010a91d arm: NEON optimisations for gf_w16
Optimisations for the 4,16 split table region multiplications.

Selected time_tool.sh 16 -A -B results for a 1.7 GHz cortex-a9:
Region Best (MB/s):   532.14   W-Method: 16 -m SPLIT 16 4 -r SIMD -
Region Best (MB/s):   212.34   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -
Region Best (MB/s):   801.36   W-Method: 16 -m SPLIT 16 4 -r SIMD -r ALTMAP -
Region Best (MB/s):    93.20   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -r ALTMAP -
Region Best (MB/s):   273.99   W-Method: 16 -m SPLIT 16 8 -
Region Best (MB/s):   270.81   W-Method: 16 -m SPLIT 8 8 -
Region Best (MB/s):    70.42   W-Method: 16 -m COMPOSITE 2 - -
Region Best (MB/s):   393.54   W-Method: 16 -m COMPOSITE 2 - -r ALTMAP -
2014-10-24 14:53:57 +02:00
Janne Grunau bec15359de arm: NEON optimisations for gf_w8
Optimisations for the 4,4 split table region multiplication and carry
less multiplication using NEON's polynomial long multiplication.
arm: w8: NEON carry less multiplication

Selected time_tool.sh results for a 1.7GHz cortex-a9:
Region Best (MB/s):   375.86   W-Method: 8 -m CARRY_FREE -
Region Best (MB/s):   142.94   W-Method: 8 -m TABLE -
Region Best (MB/s):   225.01   W-Method: 8 -m TABLE -r DOUBLE -
Region Best (MB/s):   211.23   W-Method: 8 -m TABLE -r DOUBLE -r LAZY -
Region Best (MB/s):   160.09   W-Method: 8 -m LOG -
Region Best (MB/s):   123.61   W-Method: 8 -m LOG_ZERO -
Region Best (MB/s):   123.85   W-Method: 8 -m LOG_ZERO_EXT -
Region Best (MB/s):  1183.79   W-Method: 8 -m SPLIT 8 4 -r SIMD -
Region Best (MB/s):   177.68   W-Method: 8 -m SPLIT 8 4 -r NOSIMD -
Region Best (MB/s):    87.85   W-Method: 8 -m COMPOSITE 2 - -
Region Best (MB/s):   428.59   W-Method: 8 -m COMPOSITE 2 - -r ALTMAP -
2014-10-24 14:53:35 +02:00
Janne Grunau 1311a44f7a arm: NEON optimisations for gf_w4
Optimisations for the single table region multiplication and carry less
multiplication using NEON's polynomial multiplication of 8-bit values.

The single polynomial multiplication is not that useful but vector
version is for region multiplication.

Selected time_tool.sh results for a 1.7GHz cortex-a9:
Region Best (MB/s):   672.72   W-Method: 4 -m CARRY_FREE -
Region Best (MB/s):   265.84   W-Method: 4 -m BYTWO_p -
Region Best (MB/s):   329.41   W-Method: 4 -m TABLE -r DOUBLE -
Region Best (MB/s):   278.63   W-Method: 4 -m TABLE -r QUAD -
Region Best (MB/s):   329.81   W-Method: 4 -m TABLE -r QUAD -r LAZY -
Region Best (MB/s):  1318.03   W-Method: 4 -m TABLE -r SIMD -
Region Best (MB/s):   165.15   W-Method: 4 -m TABLE -r NOSIMD -
Region Best (MB/s):    99.73   W-Method: 4 -m LOG -
2014-10-24 14:53:12 +02:00
Janne Grunau 3a1be40ea8 arm: NEON optimisations for XOR in gf_multby_one 2014-10-09 23:25:36 +02:00
Janne Grunau 36e75c3efe use posix_memalign to align memory for SIMD region tests
Properly emulate aligned allocation if posix_memalign is not available.
2014-10-09 23:22:34 +02:00
Janne Grunau eb5ce0ca42 configure: add ARM/AArch64 NEON support
Checks for arm_neon.h header.
2014-10-09 23:22:33 +02:00
Janne Grunau 568df90edc simd: rename the region flags from SSE to SIMD
SSE is not the only supported SIMD instruction set. Keep the old names
for backward compatibility.
2014-10-09 23:22:32 +02:00
Janne Grunau 2a2f1e306f check: split unit tests and support paralell execution 2014-10-09 23:22:29 +02:00
Janne Grunau f6828cfbc1 build: fix out of source tree build 2014-10-09 23:22:28 +02:00
Janne Grunau d315d20d56 build: make CFLAGS user setable
There is no need to force the non-default CFLAGS on users trying to set
them via enviroment variable or on configure command.
2014-10-09 23:19:28 +02:00
Kevin Greenan 62d4b81a83 Merged in dachary/gf-complete/wip-static-code-analysis (pull request #24)
static code analysis fixes
2014-10-03 08:55:35 -07:00
Loic Dachary dfffff2740 remove dead code in create_gf_from_argv
Since there can only be one -m, base cannot be set by -m COMPOSITE and
then deallocated on the second -m if it is bugous. The second -m will
exit on error at _gf_errno = GF_E_TWOMULT;.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
2014-09-17 10:08:37 +02:00
Loic Dachary 7c06749ab8 disable gf_error_check test that requires >> 64
Because >> 64 does not have a defined behavior.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
2014-09-17 10:08:37 +02:00
Kevin Greenan 87d7e8fbb0 Merged in beol/gf-complete (pull request #23)
On CPU that doesn't support SSE4.2 instructions set, this will fail
2014-08-23 11:14:11 -07:00
Leo Laksmana 6f160921dc On CPU that doesn't support SSE4.2 instructions set, this will fail
because incorrect header is included.

smmintrin.h => SSE4.1
nmmintrin.h => SSE4.2
2014-08-23 18:08:31 +08:00
Adam Disney c25310f215 Removed comments marking CARRY_FREE_GK additions. 2014-06-16 13:04:15 -04:00
Thomas Goirand b505099178 Fixed debian/libgf-complete1.symbols to have the correct version. 2014-06-17 00:51:26 +08:00
Thomas Goirand 73b9cedc2b Deleted include/config.h.in~ 2014-06-17 00:48:48 +08:00
Thomas Goirand 926b1b76c4 Packaging upstream v1.0.2 2014-06-17 00:48:11 +08:00
Thomas Goirand bdfae11e32 Merge tag 'v1.0.2' into debian/unstable
Adding tag for easier downstream tracking.
2014-06-17 00:47:42 +08:00
Adam Disney f48f2d38af Merge remote-tracking branch 'dalgaaf/wip-da-sca-20140513' 2014-06-16 12:44:45 -04:00
Adam Disney 5be1fecbcb Fixed a few minor warnings when running autogen.sh. 2014-06-16 12:27:19 -04:00
Adam Disney d08de3bdcb Merge remote-tracking branch 'jayrde/wip-autoconf-cleanup'
Conflicts:
	.gitignore
	INSTALL
	Makefile.in
	aclocal.m4
	config.guess
	config.sub
	configure
	examples/Makefile.in
	include/config.h.in
	include/config.h.in~
	install-sh
	ltmain.sh
	m4/libtool.m4
	m4/ltversion.m4
	missing
	src/Makefile.in
	test/Makefile.in
	tools/Makefile.in
2014-06-16 12:24:06 -04:00
Kevin Greenan 259d91ad43 autoreconf'd to reflect addition of --disable-sse 2014-06-09 12:36:05 -07:00
Kevin Greenan a11dc931ff Adding option to disable SSE in autoconf script 2014-06-09 11:21:01 -07:00
Kevin Greenan 9311b4fc10 Removed PDF from the repo and added a note in the README that describes how to
get the manual.
2014-06-09 08:34:50 -07:00
Adam Disney 6bb1ebb9f4 Implemented CARRY_FREE_GK. Sections added are tagged with a comment //ADAM
for easy navigation.
2014-06-06 13:09:04 -04:00
Thomas Goirand f56efaec5e Added initial debian folder. 2014-06-06 16:17:46 +00:00
Danny Al-Gaaf 5832024d68 gf_w32.c: remove dead assignment with no effect
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-14 16:15:52 +02:00
Danny Al-Gaaf 40b9f8f968 gf_time.c: remove dead assignment to 'elapsed'
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-14 16:12:59 +02:00