Commit graph

48 commits

Author SHA1 Message Date
Andrea Mazzoleni
0ce89aa35d Add support for selectable streaming vs cached parity generation 2026-09-02 17:26:02 +02:00
Andrea Mazzoleni
76ed8d643a Rename static test helpers in module.c to selftest_* 2026-08-25 11:03:36 +02:00
Andrea Mazzoleni
f85c014c1c Extend raid_selftest with comprehensive recovery combinations for raid_rec 2026-08-25 10:45:46 +02:00
Andrea Mazzoleni
306f847689 Reset global zero buffer with raid_zero(0) in raid_selftest cleanup 2026-08-24 21:53:08 +02:00
Andrea Mazzoleni
88442cb10c Avoid writing to healthy parities in raid_rec() using local vector remapping 2026-08-24 21:53:07 +02:00
Andrea Mazzoleni
d4184b9aee Harden public RAID API argument validation 2026-08-24 17:39:29 +02:00
Andrea Mazzoleni
5c24968e6d Add AArch32 (ARM32) NEON SIMD support for parity generation and recovery 2026-08-21 12:06:25 +02:00
Andrea Mazzoleni
ecb26a6aee Fix raid_selftest() parity bounds and dispatch in Vandermonde mode 2026-08-21 12:06:25 +02:00
Andrea Mazzoleni
11bf37d61b Enforce mode parity limits 2026-08-21 12:06:25 +02:00
Andrea Mazzoleni
47b321d97c Support dynamic runtime selection of RAID AES mode 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
1a3099d7f5 Fix building on x86 for missing AVX512 support 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
e43964523f Refactor and reorganize parity generation functions using inline templates 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
22495abe9e Add AArch64 NEON parity generation and recovery functions 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
76998613da Remove the unused number of data disks from the vector allocation
The same addressing rules are applied to the parity disks because
they are used as data disks during recovery operations.
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
108915254e Assume the assembler supports all x86 SSE/AVX instructions 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
c08a571d88 Add support for AVX2 GFNI 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
639167efba Preliminary support for AVX512GFNI 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
d735eb7736 Change commenting style 2026-08-18 23:33:52 +02:00
Christoph Hellwig
cf515b82b2 Make all RAID forwarders static and local using a new registration interface
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
562d59d9c8 Avoid a folding VLA warning in clang 2026-07-06 15:57:49 +02:00
Andrea Mazzoleni
0d0431a907 Simpler Copyright string 2026-04-09 17:56:49 +02:00
Christoph Hellwig
60269a1236 Use SPDX (https://spdx.dev/) tags to identify the license used for each
file, and a COPYING file explaining the licensing scheme, with the actual
licenses listed in the LICENSES/ directory.
2026-04-02 16:01:37 +02:00
Andrea Mazzoleni
cffa2f0c10 Better Atom prediction of fastest RAID implementation 2015-11-21 09:08:53 +01:00
Andrea Mazzoleni
2ae9d8d41a Add recognition of new Atom CPUs 2015-06-04 22:38:32 +02:00
Andrea Mazzoleni
8a0d49b21e Fix the selftest due missing return value 2015-03-30 22:23:23 +02:00
Andrea Mazzoleni
0ac0a8eceb Extend the raid regression test with some more case 2015-03-30 18:57:33 +02:00
Andrea Mazzoleni
f48c0c3cd0 Rename raid_rec_dataonly() to raid_data() 2015-03-21 17:16:16 +01:00
Andrea Mazzoleni
7bdee2c1d9 Add new raid_check() and raid_scan() functions
They are aimed to find the broken blocks using the extra
redundancy information.
2015-03-21 17:03:55 +01:00
Andrea Mazzoleni
a60e7a9bb5 Extend the raid coverage test 2015-03-18 19:19:32 +01:00
Andrea Mazzoleni
c8558c28ac Fix some formatting issues of the code
Now it matches the Linux kernel style.
2015-03-12 18:53:36 +01:00
Andrea Mazzoleni
2bcca4f2ec Fix some formatting issues 2015-03-10 22:20:11 +01:00
Andrea Mazzoleni
1d9b0abc3f Add raid selftest for raid_rec_dataonly() 2015-03-10 22:09:48 +01:00
Andrea Mazzoleni
4a92b064f4 Beautifies the raid lib. 2014-11-12 20:41:00 +01:00
Andrea Mazzoleni
7d6c30333f Uses a more precise intructions set detection.
This allows to build with old assembler programs.
2014-11-12 19:52:35 +01:00
Andrea Mazzoleni
a7cdd9cf2f Adds missing AVX2 functions. 2014-09-16 20:17:54 +02:00
Andrea Mazzoleni
0e3901ca3e Adds gen3/z support for AVX2. 2014-09-15 22:31:25 +02:00
Andrea Mazzoleni
957db46f5b Preliminary AVX2 support. 2014-09-14 18:03:40 +02:00
Andrea Mazzoleni
44ef039a13 Different source organization. 2014-03-23 17:50:27 +01:00
Andrea Mazzoleni
a7bc628bc3 Moves the source files into the src/ dir. 2014-03-22 21:02:12 +01:00
Andrea Mazzoleni
9f45424c3a Fixes a memory leak in the new raid selftest. 2014-01-14 19:19:56 +01:00
Andrea Mazzoleni
00a05a80e5 Changes the argument format of raid_rec() and renames raid_par() to raid_gen(). 2014-01-08 17:07:13 +01:00
Andrea Mazzoleni
cae803bdfb Refactors vector operations. 2014-01-02 17:51:50 +01:00
Andrea Mazzoleni
29b411e3fe Fixes build due missing PAGE_SIZE. 2014-01-01 22:26:56 +01:00
Andrea Mazzoleni
3be88162b9 Rafactors again with some minor changes. 2014-01-01 20:38:19 +01:00
Andrea Mazzoleni
cbddaa108d Refactors even more and add an additional selftest. 2013-12-31 15:46:24 +01:00
Andrea Mazzoleni
8a904cbe7a Uses specific architecture defines. 2013-12-30 21:12:29 +01:00
Andrea Mazzoleni
684edf2173 Updates the coding style of the RAID engine. 2013-12-28 12:04:16 +01:00
Andrea Mazzoleni
abc05c612c Splits the RAID engine in multiple files. 2013-12-28 09:10:00 +01:00