Andrea Mazzoleni
|
d3e67b2fdf
|
Extract common recovery function setup
|
2026-08-24 17:39:29 +02:00 |
|
Andrea Mazzoleni
|
e74b03a062
|
Remove unused argument from recovery functions
|
2026-08-24 17:39:29 +02:00 |
|
Andrea Mazzoleni
|
46ebce4e3c
|
Add specialized P+Q REC2OF2 recovery to all SIMD backends
|
2026-08-24 17:39:29 +02:00 |
|
Andrea Mazzoleni
|
d4184b9aee
|
Harden public RAID API argument validation
|
2026-08-24 17:39:29 +02:00 |
|
Andrea Mazzoleni
|
ae703ce68c
|
Optimize multi-parity recovery with fused syndrome generation
|
2026-08-24 11:57:04 +02:00 |
|
Andrea Mazzoleni
|
9d842b0dfb
|
Precompute direct Cauchy affine matrices for RAID GFNI generation
|
2026-08-23 21:57:16 +02:00 |
|
Andrea Mazzoleni
|
0c030c024e
|
Remove horner evaluation for RAID GFNI parity generation
|
2026-08-23 21:34:41 +02:00 |
|
Andrea Mazzoleni
|
63c81dedf3
|
Clarify AES GFNI performance expectations and document RAID affine multiplication behavior
|
2026-08-23 20:29:02 +02:00 |
|
Andrea Mazzoleni
|
a745a05d4e
|
Add raid_test_tail to test recovery of tail disks across all array sizes up to 251
|
2026-08-21 12:06:40 +02:00 |
|
Andrea Mazzoleni
|
c410b11162
|
Clarify SIMD register preservation rationale and AVX transition comments
|
2026-08-21 12:06:26 +02:00 |
|
Andrea Mazzoleni
|
335f2619fd
|
Optimize triple parity generation by preloading multiplication tables in vector registers
|
2026-08-21 12:06:26 +02:00 |
|
Andrea Mazzoleni
|
8c456ee354
|
Optimize dual parity generation by preloading multiplication tables in vector registers
Optimize AVX2 and AVX-512 GFNI AES dual parity generation by preloading coefficients in registers
|
2026-08-21 12:06:26 +02:00 |
|
Andrea Mazzoleni
|
3ff07a8297
|
Document RAID thread-safety requirements
|
2026-08-21 12:06:26 +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
|
e5ca862a37
|
Correct raid_scan documentation on candidate search and return semantics
|
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
|
4c51acaf29
|
Add multithreaded Cauchy matrix inversion test invtestx for Linux
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
6fa2c44caf
|
Add rec1of1 and rec2of2 benchmarks for first parity reconstruction
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
7d434954e8
|
Precalculate shuffle table pointers outside data loop in Cauchy recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
ac1797be96
|
Precompute affine matrix representations outside data loop in AVX2 and AVX-512 GFNI recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
4d61b726be
|
Unroll NEON rec2 two-disk recovery to 32-byte chunks using 25 vector registers
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
5b0e1bcd6b
|
Unroll rec1 single-disk recovery to 64-byte chunks in AVX2, SSSE3, and NEON
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
7f6ef3b4cd
|
Eliminate stack buffers, pre-split delta nibbles and and inner loop in recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
71ffb94019
|
Keep deltas in AVX-512 registers and unroll reconstruction with conditional jumps in recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
93eadd73f0
|
Preload multiplication tables and avoid repeated nibble splitting in NEON recovery
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
48d97dae31
|
Make 64-byte block alignment an explicit requirement in RAID API
|
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
|
5d2f3c7b16
|
Avoid strict-aliasing and unaligned write in raid_cpu_info
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
7e2a8eab7d
|
Keep multiplication tables resident and reuse delta nibbles in AVX2 and AVX512BW REC2
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
17591ad932
|
Add GFNI affine parity generation for RAID polynomial
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
b5d507fbe9
|
Use primitive generator 3 for AES Cauchy mode
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
cc91392803
|
Replace pointer casting with safe memcpy helpers
|
2026-08-18 23:33:59 +02:00 |
|
Andrea Mazzoleni
|
24a8464fc0
|
Require AVX512BW in addition to AVX512F for AVX-512 GFNI detection
|
2026-08-18 23:33:59 +02:00 |
|
Andrea Mazzoleni
|
f09091a4e4
|
Refine RAID buffer displacement rationale
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
45833e9f1f
|
Refine RAID stride noise documentation
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
039b5c2c28
|
Add RAID library developer README
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
f3c3265116
|
Document dummy register clobbers in raid_sse_end and raid_neon_end
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
47b321d97c
|
Support dynamic runtime selection of RAID AES mode
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
49d5e685c9
|
Avoid a folding VLA warning in clang
|
2026-08-18 23:33:55 +02:00 |
|
Andrea Mazzoleni
|
8e2b9c03b5
|
Use uniform ending on files for parity implementation
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
1a3099d7f5
|
Fix building on x86 for missing AVX512 support
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
fd2dc7810f
|
Run the speed test with and without displacement
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
2dbb25acbd
|
Allow to specify the wrap size in allocation
|
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
|
807f2f6690
|
Use vpternlogq in raid_gen3-6_avx512bw to fuse sequential vpxorq instructions into single 3-way XORs
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
9e1652673d
|
Gate AVX-512BW gen1/gen2 behind slow_avx512() to avoid double-pumped shuffle penalties
|
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
|
7a7dacc6db
|
Inject variable page-offset noise to disk buffer displacement to mitigate prefetcher contention
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
5795b9706e
|
Use the optimal displacement depending on the number of disks
|
2026-08-18 23:33:53 +02:00 |
|