Andrea Mazzoleni
cea9015933
Add experimental XXH3 hash implementation with SIMD acceleration
...
Memory write speed using the C memset() function:
memset 57952
Hash used to check the data blocks integrity:
best murmur3 spooky2 museair xxh3 xsse2 xavx2
hash spooky2 6172 17914 32048 14627 23613 44034
2026-09-30 20:06:19 +02:00
Andrea Mazzoleni
b070cbb894
Fix inline asm memory operand sizes for array-backed constants
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
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
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
Andrea Mazzoleni
c1a78092c4
Fix RAID documentation accuracy
2026-08-24 21:53:07 +02:00
Andrea Mazzoleni
03d82a71f4
Document raid_selftest startup execution and mode selection requirements
2026-08-24 21:53:07 +02:00