Commit graph

2522 commits

Author SHA1 Message Date
Andrea Mazzoleni
0ebe2e1e5e Add OTHERS 2026-08-24 21:53:07 +02:00
Andrea Mazzoleni
3f4d7e15fa Reduce SSSE3ext REC1 unrolling from 64 to 32 bytes for better performance 2026-08-24 21:53:07 +02:00
Andrea Mazzoleni
048d0c14b1 Make TEST_COUNT and TEST_SIZE parametric in raid fulltest and test Makefile 2026-08-24 21:53:07 +02:00
Andrea Mazzoleni
4d97df38ce Optimize recovery with P by deriving the final missing block via XOR 2026-08-24 21:53:07 +02:00
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
de7c06a01b Add statfs_type helper to avoid sign-compare warnings on 32-bit platforms 2026-08-21 12:06:26 +02:00
Andrea Mazzoleni
ed7f9aa9f9 Add ARM32 cross-build job to GitHub Actions 2026-08-21 12:06:26 +02:00
Andrea Mazzoleni
ddc445ee18 Add ARM32 cross-build and QEMU user-mode testing 2026-08-21 12:06:25 +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
77fa2bdfca Update AGENTS.md 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
f855bf4d82 Update TODO 2026-08-19 23:55:34 +02:00
Andrea Mazzoleni
15831064a1 Extend parent directory fsync after content file rename to all platforms 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
6d4c4925f4 Add unsigned literal suffixes to constants 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
dd04cbde7c Replace pointer casting with safe memcpy helpers in murmur3 and spooky 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
cc91392803 Replace pointer casting with safe memcpy helpers 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
b4634578ba Fix buffer over-read in argsplit when trailing backslash occurs inside double quotes 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
a89b6f3126 Fix parse_option_size() to reject negative values, ERANGE errors, and suffix multiplication overflow. 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
fdce9738e8 Document Windows Ctrl-Break termination semantics in os_term() 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
b3dc7e55c1 Use dedicated scriptcat() for cmd.exe batch parameter serialization in os_script() 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
576873f0f9 Use tv[1] as mtime in Windows futimens and utimensat emulation 2026-08-18 23:33:58 +02:00