]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
erasure-code: [ISA] modify get_alignment function to imply a platform/compiler indepe...
authorAndreas Peters <Andreas.Joachim.Peters@cern.ch>
Thu, 25 Sep 2014 14:48:47 +0000 (16:48 +0200)
committerLoic Dachary <loic-201408@dachary.org>
Thu, 25 Sep 2014 15:37:27 +0000 (17:37 +0200)
src/erasure-code/isa/ErasureCodeIsa.cc
src/erasure-code/isa/README
src/erasure-code/isa/xor_op.h

index 962ab81f0437545d3e577e3a6354c61a3810fcc5..427c293125784e819f125c0b56188adc791afcad 100644 (file)
@@ -326,7 +326,7 @@ ErasureCodeIsaDefault::isa_decode(int *erasures,
 unsigned
 ErasureCodeIsaDefault::get_alignment() const
 {
-  return k * EC_ISA_VECTOR_OP_WORDSIZE;
+  return k * EC_ISA_ADDRESS_ALIGNMENT;
 }
 
 // -----------------------------------------------------------------------------
index dbbfa67f88d55b6a0947b7d436417b0e8b6d75ff..f5e9fe595e2367dcfdb3421f9e2591052850f06a 100644 (file)
@@ -50,9 +50,10 @@ make ceph_erasure_code_benchmark
 
 Developer Notes
 ===============
-The plugin requires 16*k byte aligned buffers. The encoding tables are computed only
-once when the EC object is created. Decoding Tables have to be computed for
-each decoding since the available data/coding sources may change between calls.
+The plugin provides optimal performance for 32-byte aligned buffer start address and 
+k*32 byte aligned buffer length. The encoding tables are computed only once when the EC 
+object is created. Decoding Tables have to be computed for each decoding since the available 
+data/coding sources may change between calls.
 Decoding tables are cached in an LRU cache which is sufficiently large up to (12,4).
 
 For larger configurations the cache might expire the 'oldest' tables and decoding might
index 62c2c358a11a4b5c219be5579fc8db645250676b..6a918d3b12e187ae2b9fcc74849586b6b9f6b09b 100644 (file)
@@ -26,6 +26,7 @@
 // -------------------------------------------------------------------------
 // -------------------------------------------------------------------------
 
+#define EC_ISA_ADDRESS_ALIGNMENT 32
 #define EC_ISA_VECTOR_SSE2_WORDSIZE 64
 
 #if __GNUC__ > 4 || \