27 Nov, 2018
1 commit
-
[ Upstream commit 313a06e636808387822af24c507cba92703568b1 ]
The lib/raid6/test fails to build the neon objects
on arm64 because the correct machine type is 'aarch64'.Once this is correctly enabled, the neon recovery objects
need to be added to the build.Reviewed-by: Ard Biesheuvel
Signed-off-by: Jeremy Linton
Signed-off-by: Catalin Marinas
Signed-off-by: Sasha Levin
02 Nov, 2017
1 commit
-
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.By default all files without license information are under the default
license of the kernel, which is GPL version 2.Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if
Reviewed-by: Philippe Ombredanne
Reviewed-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
27 Sep, 2016
1 commit
-
Specifying the aligned attributes to the char data[NDISKS][PAGE_SIZE],
char recovi[PAGE_SIZE] and char recovi[PAGE_SIZE] arrays, so that all
malloc memory is page boundary aligned.Without these alignment attributes, the test causes a segfault in
userspace when the NDISKS are changed to 4 from 16.The RAID stripes will be page aligned anyway, so we want to test what
the kernel actually will execute.Cc: H. Peter Anvin
Cc: Yu-cheng Yu
Signed-off-by: Gayatri Kammela
Reviewed-by: H. Peter Anvin
Signed-off-by: Shaohua Li
22 Sep, 2016
1 commit
-
Adding avx512 gen_syndrome and recovery functions so as to allow code to
be compiled and tested successfully in userspace.This patch is tested in userspace and improvement in performace is
observed.Cc: H. Peter Anvin
Cc: Jim Kukunas
Cc: Fenghua Yu
Signed-off-by: Megha Dey
Signed-off-by: Gayatri Kammela
Reviewed-by: Fenghua Yu
Signed-off-by: Shaohua Li
22 Apr, 2015
1 commit
-
It is always helpful to have a test tool in place if we implement
new data critical algorithms. So add some test routines to the raid6
checker that can prove if the new xor_syndrome() works as expected.Run through all permutations of start/stop pages per algorithm and
simulate a xor_syndrome() assisted rmw run. After each rmw check if
the recovery algorithm still confirms that the stripe is fine.Signed-off-by: Markus Stockhausen
Signed-off-by: NeilBrown
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
22 May, 2012
1 commit
-
Test each combination of recovery and syndrome generation
functions.Signed-off-by: Jim Kukunas
Signed-off-by: NeilBrown
11 Aug, 2010
1 commit
-
Linus asks 'why "raid6" twice?'. No reason.
Signed-off-by: David Woodhouse