11 Sep, 2013
1 commit
-
Pull md update from Neil Brown:
"Headline item is multithreading for RAID5 so that more IO/sec can be
supported on fast (SSD) devices. Also TILE-Gx SIMD suppor for RAID6
calculations and an assortment of bug fixes"* tag 'md/3.12' of git://neil.brown.name/md:
raid5: only wakeup necessary threads
md/raid5: flush out all pending requests before proceeding with reshape.
md/raid5: use seqcount to protect access to shape in make_request.
raid5: sysfs entry to control worker thread number
raid5: offload stripe handle to workqueue
raid5: fix stripe release order
raid5: make release_stripe lockless
md: avoid deadlock when dirty buffers during md_stop.
md: Don't test all of mddev->flags at once.
md: Fix apparent cut-and-paste error in super_90_validate
raid6/test: replace echo -e with printf
RAID: add tilegx SIMD implementation of raid6
md: fix safe_mode buglet.
md: don't call md_allow_write in get_bitmap_file.
27 Aug, 2013
2 commits
-
-e is a non-standard echo option, echo output is
implementation-dependent when it is used. Replace echo -e with printf as
suggested by POSIX echo manual.Cc: NeilBrown
Cc: Jim Kukunas
Cc: "H. Peter Anvin"
Cc: Yuanhan Liu
Acked-by: H. Peter Anvin
Signed-off-by: Max Filippov
Signed-off-by: NeilBrown -
This change adds TILE-Gx SIMD instructions to the software raid
(md), modeling the Altivec implementation. This is only for Syndrome
generation; there is more that could be done to improve recovery,
as in the recent Intel SSE3 recovery implementation.The code unrolls 8 times; this turns out to be the best on tilegx
hardware among the set 1, 2, 4, 8 or 16. The code reads one
cache-line of data from each disk, stores P and Q then goes to the
next cache-line.The test code in sys/linux/lib/raid6/test reports 2008 MB/s data
read rate for syndrome generation using 18 disks (16 data and 2
parity). It was 1512 MB/s before this SIMD optimizations. This is
running on 1 core with all the data in cache.This is based on the paper The Mathematics of RAID-6.
(http://kernel.org/pub/linux/kernel/people/hpa/raid6.pdf).Signed-off-by: Ken Steele
Signed-off-by: Chris Metcalf
Signed-off-by: NeilBrown
09 Jul, 2013
1 commit
-
Rebased/reworked a patch contributed by Rob Herring that uses
NEON intrinsics to perform the RAID-6 syndrome calculations.
It uses the existing unroll.awk code to generate several
unrolled versions of which the best performing one is selected
at boot time.Signed-off-by: Ard Biesheuvel
Acked-by: Nicolas Pitre
Cc: hpa@linux.intel.com
13 Dec, 2012
3 commits
-
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 -
Add AVX2 optimized gen_syndrom functions, which is simply based on
sse2.c written by hpa.Signed-off-by: Yuanhan Liu
Reviewed-by: H. Peter Anvin
Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown -
Optimize RAID6 recovery functions to take advantage of
the 256-bit YMM integer instructions introduced in AVX2.The patch was tested and benchmarked before submission.
However hardware is not yet released so benchmark numbers
cannot be reported.Acked-by: "H. Peter Anvin"
Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown
28 May, 2012
1 commit
-
Make the recovery functions static to fix the following sparse warnings:
lib/raid6/recov.c:25:6: warning: symbol 'raid6_2data_recov_intx1' was
not declared. Should it be static?
lib/raid6/recov.c:69:6: warning: symbol 'raid6_datap_recov_intx1' was
not declared. Should it be static?
lib/raid6/recov_ssse3.c:22:6: warning: symbol 'raid6_2data_recov_ssse3'
was not declared. Should it be static?
lib/raid6/recov_ssse3.c:197:6: warning: symbol 'raid6_datap_recov_ssse3'
was not declared. Should it be static?Reported-by: Fengguang Wu
Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown
22 May, 2012
4 commits
-
Reorders functions in raid6_algos as well as the preference check
to reduce the number of functions tested on initialization.Also, creates symmetry between choosing the gen_syndrome functions
and choosing the recovery functions.Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown -
Test each combination of recovery and syndrome generation
functions.Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown -
Add SSSE3 optimized recovery functions, as well as a system
for selecting the most appropriate recovery functions to use.Originally-by: H. Peter Anvin
Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown -
drags in headers which are not visible to userspace,
thus breaking the build for the test program.Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown
29 Mar, 2012
2 commits
-
Remove all #inclusions of asm/system.h preparatory to splitting and killing
it. Performed with the following command:perl -p -i -e 's!^#\s*include\s*.*\n!!' `grep -Irl '^#\s*include\s*' *`
Signed-off-by: David Howells
-
Disintegrate asm/system.h for PowerPC.
Signed-off-by: David Howells
Acked-by: Benjamin Herrenschmidt
cc: linuxppc-dev@lists.ozlabs.org
01 Nov, 2011
2 commits
-
These files were getting the defines for EXPORT_SYMBOL because
device.h was including module.h. But we are going to put an
end to that. So add the proper export.h include now.Signed-off-by: Paul Gortmaker
-
A pending cleanup will mean that module.h won't be implicitly
everywhere anymore. Make sure the modular drivers in md dir
are actually calling out for explicitly in advance.Signed-off-by: Paul Gortmaker
20 Oct, 2011
1 commit
-
The files were renamed in commit cc4589ebf; fix the name in the file
itself.Signed-off-by: Dan McGee
Signed-off-by: NeilBrown
30 Aug, 2010
1 commit
-
Another missing bit of the raid6 -> /lib move.
Reported-by: Andreas Schwab
Signed-off-by: NeilBrown
12 Aug, 2010
2 commits
-
Rename raid6/raid6x86.h to raid6/x86.h
and modify some comments.Signed-off-by: NeilBrown
-
Some bit-rot needs to be cleaned out.
Signed-off-by: NeilBrown
11 Aug, 2010
1 commit
-
Linus asks 'why "raid6" twice?'. No reason.
Signed-off-by: David Woodhouse
09 Aug, 2010
1 commit
-
Conflicts:
drivers/md/Makefile
lib/raid6/unroll.pl
29 Oct, 2009
1 commit
-
We'll want to use these in btrfs too.
Signed-off-by: David Woodhouse