22 Apr, 2015
2 commits
-
The second and (last) optimized XOR syndrome calculation. This version
supports right and left side optimization. All CPUs with architecture
older than Haswell will benefit from it.It should be noted that SSE2 movntdq kills performance for memory areas
that are read and written simultaneously in chunks smaller than cache
line size. So use movdqa instead for P/Q writes in sse21 and sse22 XOR
functions.Signed-off-by: Markus Stockhausen
Signed-off-by: NeilBrown -
v3: s-o-b comment, explanation of performance and descision for
the start/stop implementationImplementing rmw functionality for RAID6 requires optimized syndrome
calculation. Up to now we can only generate a complete syndrome. The
target P/Q pages are always overwritten. With this patch we provide
a framework for inplace P/Q modification. In the first place simply
fill those functions with NULL values.xor_syndrome() has two additional parameters: start & stop. These
will indicate the first and last page that are changing during a
rmw run. That makes it possible to avoid several unneccessary loops
and speed up calculation. The caller needs to implement the following
logic to make the functions work.1) xor_syndrome(disks, start, stop, ...): "Remove" all data of source
blocks inside P/Q between (and including) start and end.2) modify any block with start
Signed-off-by: NeilBrown
13 Dec, 2012
1 commit
-
sse and avx2 stuff only exist on x86 arch, and we don't need to build
altivec on x86. And we can do that at lib/raid6/Makefile.Proposed-by: H. Peter Anvin
Signed-off-by: Yuanhan Liu
Reviewed-by: H. Peter Anvin
Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown
12 Aug, 2010
1 commit
-
Rename raid6/raid6x86.h to raid6/x86.h
and modify some comments.Signed-off-by: NeilBrown
11 Aug, 2010
1 commit
-
Linus asks 'why "raid6" twice?'. No reason.
Signed-off-by: David Woodhouse