Re: [v6 1/2] raid6/altivec: Add vpermxor implementation for raid6 Q syndrome
From: Matt Brown <hidden>
Date: 2017-08-09 23:41:19
Also in:
lkml
On Wed, Aug 9, 2017 at 11:26 PM, Michael Ellerman [off-list ref] wrote:
Matt Brown [off-list ref] writes:quoted
This patch uses the vpermxor instruction to optimise the raid6 Q syndrome. This instruction was made available with POWER8, ISA version 2.07. It allows for both vperm and vxor instructions to be done in a single instruction. This has been tested for correctness on a ppc64le vm with a basic RAID6 setup containing 5 drives. The performance benchmarks are from the raid6test in the /lib/raid6/test directory. These results are from an IBM Firestone machine with ppc64le architecture. The benchmark results show a 35% speed increase over the best existing algorithm for powerpc (altivec). The raid6test has also been run on a big-endian ppc64 vm to ensure it also works for big-endian architectures. Performance benchmarks: raid6: altivecx4 gen() 18773 MB/s raid6: altivecx8 gen() 19438 MB/s raid6: vpermxor4 gen() 25112 MB/s raid6: vpermxor8 gen() 26279 MB/s Signed-off-by: Matt Brown <redacted> Reviewed-by: Daniel Axtens <redacted> --- v6: - added vpermxor files to .gitignore - fixup whitespace - added vpermxor objs to test/Makefile v5: - moved altivec.uc fix into other patch in series --- include/linux/raid/pq.h | 4 ++ lib/raid6/.gitignore | 1 + lib/raid6/Makefile | 27 ++++++++++++- lib/raid6/algos.c | 4 ++ lib/raid6/test/Makefile | 17 +++++++- lib/raid6/vpermxor.uc | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 lib/raid6/vpermxor.ucThis version at least is not Cc'ed to any of the folks that get_maintainers.pl identifies for these files: $ ./scripts/get_maintainer.pl -f lib/raid6 shli@fb.com gayatri.kammela@intel.com fenghua.yu@intel.com megha.dey@linux.intel.com schwidefsky@de.ibm.com anup.patel@broadcom.com linux-kernel@vger.kernel.org This seems like mostly a list of random folks who've touched this code, but maybe some of them would have comments?
Ah my bad. I've CC'ed them into this email chain. Apologies for not including you guys in the original email. Here is a link to the patchworks patch: http://patchwork.ozlabs.org/patch/797576/ Thanks, Matt Brown