Commit graph

227 commits

Author SHA1 Message Date
Andrea Mazzoleni
25c86bc1e7 Remove leading double underscores from header include guards 2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
6ae014d6ed Align integer gen and rec loops to 64 bytes
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
0ad0913ef2 Use os_tick_ns() monotonic timer and add compiler memory barriers
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-arm32 (push) Has been cancelled
Build / build-win (push) Has been cancelled
Build / build-freebsd (push) Has been cancelled
Build / build-musl (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-10-02 11:09:42 +02:00
Andrea Mazzoleni
b070cbb894 Fix inline asm memory operand sizes for array-backed constants
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-25 13:33:26 +02:00
Andrea Mazzoleni
3c155e925d Fix AArch64 NEON table loads on big-endian systems 2026-09-25 08:24:50 +02:00
Andrea Mazzoleni
209b902301 Clarify raid_malloc documentation 2026-09-16 12:24:42 +02:00
Andrea Mazzoleni
5d9b1aee00 Clarify RAID buffer access, aliasing, and zero-size behavior 2026-09-16 08:49:15 +02:00
Andrea Mazzoleni
bfe5ee7643 Document streaming parameter as a strict 0 or 1 value 2026-09-16 08:39:22 +02:00
Andrea Mazzoleni
de00981504 Update RAID notes for fused scalar and AArch32 recovery paths 2026-09-16 08:35:29 +02:00
Andrea Mazzoleni
78abc2c7b7 Limit maximum consecutive newlines in uncrustify configuration 2026-09-14 22:33:23 +02:00
Andrea Mazzoleni
2f47d407ba Strengthen stream and vector memory tests 2026-09-11 09:27:42 +02:00
Andrea Mazzoleni
bc564e7465 Improve speed benchmark stability with adaptive 1 ms sampling and best-result selection 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b82ee5ff56 Separate hash identity from canonical padding validation in check to fix CHG generation detection with MuseAir 2026-09-07 11:45:16 +02:00
Andrea Mazzoleni
e9621ead4c Clarify cache policy and usage of streaming hint in raid_gen() 2026-09-04 10:03:02 +02:00
Andrea Mazzoleni
0b64fb2eae Eliminate obsolete raid_zero API and dedicated zero buffers
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-02 20:49:06 +02:00
Andrea Mazzoleni
8f27c393d6 Standardize types to uint8_t and clean up legacy variables and setup boilerplate 2026-09-02 20:45:06 +02:00
Andrea Mazzoleni
fc9fde000f Harmonize function across simd architectures 2026-09-02 18:40:23 +02:00
Andrea Mazzoleni
ec1daddc8e Eliminate raid_delta_gen and convert int/neon32 REC1/REC2 to single-pass fused recovery 2026-09-02 18:30:59 +02:00
Andrea Mazzoleni
0ce89aa35d Add support for selectable streaming vs cached parity generation 2026-09-02 17:26:02 +02:00
Andrea Mazzoleni
79308a2041 Update NOTES
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-08-31 21:34:10 +02:00
Andrea Mazzoleni
b991d5e6c8 Use temporal stores for recovered data in SSSE3 and AVX2 REC1OF1 paths 2026-08-31 21:34:10 +02:00
Andrea Mazzoleni
f3caf1dbf1 Add dedicated XOR-only fast paths for GFNI rec1of1 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
da58c1a997 Use fused 1-pass recovery for SSSE3 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
ee47fdf723 Fix raid_gen_force parity count in benchmarks 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
5acd43c9e5 Add dedicated XOR-only fast path for AVX512 rec1of1 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
e39c21a4c5 Add XOR-only fast path for AVX2 GFNI rec1of1 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
82089165b5 Add dedicated XOR-only fast path for NEON rec1of1 2026-08-31 20:45:38 +02:00
Andrea Mazzoleni
6613eb5776 Optimize NEON nibble mask setup using MOVI and hoist invariant initialization 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
85d50456d7 Use size_t instead of ssize_t for buffer sizes in raid_malloc_vector_align 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
e0c0ea3dcc Optimize scalar 8-bit RAID parity generation and recovery in int.c 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
69a1ed1125 Specialize RAID recovery functions by passing has_p as a constant argument 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
e0e3618240 Add 64-byte unrolled raid_recX_neon_12 recovery kernel for NEON 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
2a73074faa Use fused 1-pass recovery for rec2 in AVX2 backend 2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
35abfd81e1 Use fused 1-pass recovery for rec1of1 and rec2of2 in NEON, AVX512 and GFNI backends 2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
64271ac429 Add FreeBSD build and test job using freebsd-vm action 2026-08-26 10:44:01 +02:00
Andrea Mazzoleni
f25fbd0c1b Do not flag AMD CPUs as having slow AVX-512 in raid_cpu_has_slow_avx512 2026-08-26 10:11:44 +02:00
Andrea Mazzoleni
9bd2f68046 Add and standardize top comments across SIMD assembly functions 2026-08-25 12:09:03 +02:00
Andrea Mazzoleni
3759c9356b Optimize gen2 and gen3 kernels for AVX-512 GFNI with coefficient preloading 2026-08-25 11:24:43 +02:00
Andrea Mazzoleni
76ed8d643a Rename static test helpers in module.c to selftest_* 2026-08-25 11:03:36 +02:00
Andrea Mazzoleni
697ab3056e Extend selftest and fulltest with disk edge cases, polynomial checks, and comments 2026-08-25 10:59:33 +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
c192fe8982 Add compiler memory barriers to NEON and NEON32 end helpers 2026-08-25 09:58:53 +02:00
Andrea Mazzoleni
7250521e66 Clarify fulltest scope and test_count limits in raid README 2026-08-24 22:16:52 +02:00
Andrea Mazzoleni
e43bdda22b Return -1 in raid_check and raid_scan when block size is 0 2026-08-24 22:11:52 +02:00
Andrea Mazzoleni
46a09a380a Check maximum basic CPUID leaf before querying leaf 7 in AVX probing 2026-08-24 22:06:17 +02:00
Andrea Mazzoleni
5ed6a29db2 Document memory helpers, freeing semantics, and design invariants 2026-08-24 22:01:40 +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
eba07d2173 Include <stddef.h> in raid.h to make the public header self-contained 2026-08-24 21:53:08 +02:00
Andrea Mazzoleni
453fb20d83 Avoid UB in raid_gen memcpy when output aliases input with nd == 1 2026-08-24 21:53:07 +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