Commit graph

  • 8396d3aaa1 Clarify cross-generation lookup limitation and safety in import_dealloc during rehash Andrea Mazzoleni 2026-08-26 10:23:42 +02:00
  • f25fbd0c1b Do not flag AMD CPUs as having slow AVX-512 in raid_cpu_has_slow_avx512 Andrea Mazzoleni 2026-08-26 10:11:44 +02:00
  • 26956bfa71 Document known issues in manual Andrea Mazzoleni 2026-08-26 10:00:16 +02:00
  • 1123b3eca0 Fix deallocated import candidate handling with stat validation and fallback Andrea Mazzoleni 2026-08-26 09:30:18 +02:00
  • 78e87549ca Improve directory scan filesystem boundary detection using statx() for mount and subvolume IDs Andrea Mazzoleni 2026-08-26 08:36:19 +02:00
  • 0416366e2d Handle trailing-slash paths in Windows lstat using handle-based states starting Andrea Mazzoleni 2026-08-26 09:09:32 +02:00
  • 4f286a2faa Document fs_allocate behavior, performance rationale, and invariant checks Andrea Mazzoleni 2026-08-26 07:50:02 +02:00
  • 30f78a4190 Fix fs_check validation omission on the final file in fs_file extent tree Andrea Mazzoleni 2026-08-26 07:44:46 +02:00
  • 6583897fcf Reserve snapraid- prefix for native ZFS snapshots and introduce fssnapshot_path Andrea Mazzoleni 2026-08-26 00:37:52 +02:00
  • 0e2d31d9db Document symlink target stability requirements for configured data directories Andrea Mazzoleni 2026-08-26 00:31:56 +02:00
  • ebb199de3d Fix snapshot path resolution and aliased paths by storing sub_dir in fssnapshot_struct Andrea Mazzoleni 2026-08-25 23:09:39 +02:00
  • abcdd688dd Improve snapshot fallback warning messages to inform users of reduced recovery capability if files changed since the last sync Andrea Mazzoleni 2026-08-25 22:39:56 +02:00
  • 31fc380609 Document risk of file modifications during interrupted sync in snapshots lifecycle Andrea Mazzoleni 2026-08-25 12:51:26 +02:00
  • b60979f293 Add raid_selftest() checks for all RAID modes in the test command Andrea Mazzoleni 2026-08-25 12:13:21 +02:00
  • 9bd2f68046 Add and standardize top comments across SIMD assembly functions Andrea Mazzoleni 2026-08-25 11:36:16 +02:00
  • 3759c9356b Optimize gen2 and gen3 kernels for AVX-512 GFNI with coefficient preloading Andrea Mazzoleni 2026-08-25 11:24:43 +02:00
  • 76ed8d643a Rename static test helpers in module.c to selftest_* Andrea Mazzoleni 2026-08-25 11:03:36 +02:00
  • 697ab3056e Extend selftest and fulltest with disk edge cases, polynomial checks, and comments Andrea Mazzoleni 2026-08-25 10:59:33 +02:00
  • f85c014c1c Extend raid_selftest with comprehensive recovery combinations for raid_rec Andrea Mazzoleni 2026-08-25 10:33:30 +02:00
  • c192fe8982 Add compiler memory barriers to NEON and NEON32 end helpers Andrea Mazzoleni 2026-08-25 09:58:53 +02:00
  • fd65dbd9ea Fix undefined behavior by making TommyDS foreach callback signatures take void* Andrea Mazzoleni 2026-08-24 23:03:00 +02:00
  • 7250521e66 Clarify fulltest scope and test_count limits in raid README Andrea Mazzoleni 2026-08-24 22:16:52 +02:00
  • e43bdda22b Return -1 in raid_check and raid_scan when block size is 0 Andrea Mazzoleni 2026-08-24 22:11:52 +02:00
  • 46a09a380a Check maximum basic CPUID leaf before querying leaf 7 in AVX probing Andrea Mazzoleni 2026-08-24 22:06:17 +02:00
  • 5ed6a29db2 Document memory helpers, freeing semantics, and design invariants Andrea Mazzoleni 2026-08-24 22:01:40 +02:00
  • b9974b7873 Include missing raid docs, mktables, and invtestx in EXTRA_DIST Andrea Mazzoleni 2026-08-24 21:50:24 +02:00
  • 306f847689 Reset global zero buffer with raid_zero(0) in raid_selftest cleanup Andrea Mazzoleni 2026-08-24 21:42:22 +02:00
  • eba07d2173 Include <stddef.h> in raid.h to make the public header self-contained Andrea Mazzoleni 2026-08-24 21:37:10 +02:00
  • 453fb20d83 Avoid UB in raid_gen memcpy when output aliases input with nd == 1 Andrea Mazzoleni 2026-08-24 21:32:35 +02:00
  • 88442cb10c Avoid writing to healthy parities in raid_rec() using local vector remapping Andrea Mazzoleni 2026-08-24 21:24:52 +02:00
  • c1a78092c4 Fix RAID documentation accuracy Andrea Mazzoleni 2026-08-24 20:20:35 +02:00
  • 03d82a71f4 Document raid_selftest startup execution and mode selection requirements Andrea Mazzoleni 2026-08-24 17:51:35 +02:00
  • df4667ffd5 Add NOTES Andrea Mazzoleni 2026-08-23 21:56:59 +02:00
  • 0ebe2e1e5e Add OTHERS Andrea Mazzoleni 2026-08-21 11:23:36 +02:00
  • 3f4d7e15fa Reduce SSSE3ext REC1 unrolling from 64 to 32 bytes for better performance Andrea Mazzoleni 2026-08-24 17:20:15 +02:00
  • 048d0c14b1 Make TEST_COUNT and TEST_SIZE parametric in raid fulltest and test Makefile Andrea Mazzoleni 2026-08-24 17:03:52 +02:00
  • 4d97df38ce Optimize recovery with P by deriving the final missing block via XOR Andrea Mazzoleni 2026-08-24 16:12:04 +02:00
  • d3e67b2fdf Extract common recovery function setup Andrea Mazzoleni 2026-08-24 15:42:05 +02:00
  • e74b03a062 Remove unused argument from recovery functions Andrea Mazzoleni 2026-08-24 15:26:20 +02:00
  • 46ebce4e3c Add specialized P+Q REC2OF2 recovery to all SIMD backends Andrea Mazzoleni 2026-08-24 14:46:18 +02:00
  • d4184b9aee Harden public RAID API argument validation Andrea Mazzoleni 2026-08-24 14:05:56 +02:00
  • ae703ce68c Optimize multi-parity recovery with fused syndrome generation Andrea Mazzoleni 2026-08-23 22:28:21 +02:00
  • 9d842b0dfb Precompute direct Cauchy affine matrices for RAID GFNI generation Andrea Mazzoleni 2026-08-23 21:55:26 +02:00
  • 0c030c024e Remove horner evaluation for RAID GFNI parity generation Andrea Mazzoleni 2026-08-23 21:07:45 +02:00
  • 63c81dedf3 Clarify AES GFNI performance expectations and document RAID affine multiplication behavior Andrea Mazzoleni 2026-08-23 20:26:14 +02:00
  • 1b5c926936 Implement G23 Extended Cauchy construction for AES RAID mode raid23 Andrea Mazzoleni 2026-08-21 19:40:48 +02:00
  • b5d7474c3b Add NOTES Andrea Mazzoleni 2026-08-20 01:09:06 +02:00
  • f99f69b18d Add OTHERS Andrea Mazzoleni 2026-08-21 11:23:36 +02:00
  • a745a05d4e Add raid_test_tail to test recovery of tail disks across all array sizes up to 251 Andrea Mazzoleni 2026-08-21 11:42:14 +02:00
  • c410b11162 Clarify SIMD register preservation rationale and AVX transition comments Andrea Mazzoleni 2026-08-21 10:09:54 +02:00
  • 335f2619fd Optimize triple parity generation by preloading multiplication tables in vector registers Andrea Mazzoleni 2026-08-20 23:56:57 +02:00
  • 8c456ee354 Optimize dual parity generation by preloading multiplication tables in vector registers Andrea Mazzoleni 2026-08-20 23:30:28 +02:00
  • 3ff07a8297 Document RAID thread-safety requirements Andrea Mazzoleni 2026-08-20 22:59:55 +02:00
  • de7c06a01b Add statfs_type helper to avoid sign-compare warnings on 32-bit platforms Andrea Mazzoleni 2026-08-20 22:26:41 +02:00
  • ed7f9aa9f9 Add ARM32 cross-build job to GitHub Actions Andrea Mazzoleni 2026-08-20 22:10:47 +02:00
  • ddc445ee18 Add ARM32 cross-build and QEMU user-mode testing Andrea Mazzoleni 2026-08-20 22:09:33 +02:00
  • 5c24968e6d Add AArch32 (ARM32) NEON SIMD support for parity generation and recovery Andrea Mazzoleni 2026-08-20 21:47:31 +02:00
  • e5ca862a37 Correct raid_scan documentation on candidate search and return semantics Andrea Mazzoleni 2026-08-20 20:56:48 +02:00
  • ecb26a6aee Fix raid_selftest() parity bounds and dispatch in Vandermonde mode Andrea Mazzoleni 2026-08-20 20:38:19 +02:00
  • 4c51acaf29 Add multithreaded Cauchy matrix inversion test invtestx for Linux Andrea Mazzoleni 2026-08-20 18:58:49 +02:00
  • 6fa2c44caf Add rec1of1 and rec2of2 benchmarks for first parity reconstruction Andrea Mazzoleni 2026-08-20 17:50:49 +02:00
  • 77fa2bdfca Update AGENTS.md Andrea Mazzoleni 2026-08-20 17:39:36 +02:00
  • 7d434954e8 Precalculate shuffle table pointers outside data loop in Cauchy recX Andrea Mazzoleni 2026-08-20 17:29:57 +02:00
  • ac1797be96 Precompute affine matrix representations outside data loop in AVX2 and AVX-512 GFNI recX Andrea Mazzoleni 2026-08-20 17:26:29 +02:00
  • 4d61b726be Unroll NEON rec2 two-disk recovery to 32-byte chunks using 25 vector registers Andrea Mazzoleni 2026-08-20 17:24:20 +02:00
  • 5b0e1bcd6b Unroll rec1 single-disk recovery to 64-byte chunks in AVX2, SSSE3, and NEON Andrea Mazzoleni 2026-08-20 17:20:45 +02:00
  • 7f6ef3b4cd Eliminate stack buffers, pre-split delta nibbles and and inner loop in recX Andrea Mazzoleni 2026-08-20 16:18:59 +02:00
  • 71ffb94019 Keep deltas in AVX-512 registers and unroll reconstruction with conditional jumps in recX Andrea Mazzoleni 2026-08-20 16:15:50 +02:00
  • 93eadd73f0 Preload multiplication tables and avoid repeated nibble splitting in NEON recovery Andrea Mazzoleni 2026-08-20 15:55:27 +02:00
  • 48d97dae31 Make 64-byte block alignment an explicit requirement in RAID API Andrea Mazzoleni 2026-08-20 10:11:14 +02:00
  • 11bf37d61b Enforce mode parity limits Andrea Mazzoleni 2026-08-20 01:22:31 +02:00
  • 5d2f3c7b16 Avoid strict-aliasing and unaligned write in raid_cpu_info Andrea Mazzoleni 2026-08-20 01:19:49 +02:00
  • 7e2a8eab7d Keep multiplication tables resident and reuse delta nibbles in AVX2 and AVX512BW REC2 Andrea Mazzoleni 2026-08-19 23:58:49 +02:00
  • 17591ad932 Add GFNI affine parity generation for RAID polynomial Andrea Mazzoleni 2026-08-19 17:59:02 +02:00
  • b5d507fbe9 Use primitive generator 3 for AES Cauchy mode Andrea Mazzoleni 2026-08-19 01:36:18 +02:00
  • f855bf4d82 Update TODO Andrea Mazzoleni 2026-08-19 19:01:16 +02:00
  • 15831064a1 Extend parent directory fsync after content file rename to all platforms Andrea Mazzoleni 2026-08-18 23:04:56 +02:00
  • 6d4c4925f4 Add unsigned literal suffixes to constants Andrea Mazzoleni 2026-08-18 22:56:55 +02:00
  • dd04cbde7c Replace pointer casting with safe memcpy helpers in murmur3 and spooky Andrea Mazzoleni 2026-08-18 22:52:57 +02:00
  • cc91392803 Replace pointer casting with safe memcpy helpers Andrea Mazzoleni 2026-08-18 22:52:46 +02:00
  • b4634578ba Fix buffer over-read in argsplit when trailing backslash occurs inside double quotes Andrea Mazzoleni 2026-08-18 22:36:07 +02:00
  • a89b6f3126 Fix parse_option_size() to reject negative values, ERANGE errors, and suffix multiplication overflow. Andrea Mazzoleni 2026-08-18 22:21:59 +02:00
  • 24a8464fc0 Require AVX512BW in addition to AVX512F for AVX-512 GFNI detection Andrea Mazzoleni 2026-08-18 22:09:39 +02:00
  • fdce9738e8 Document Windows Ctrl-Break termination semantics in os_term() Andrea Mazzoleni 2026-08-18 12:24:37 +02:00
  • b3dc7e55c1 Use dedicated scriptcat() for cmd.exe batch parameter serialization in os_script() Andrea Mazzoleni 2026-08-18 11:05:54 +02:00
  • 576873f0f9 Use tv[1] as mtime in Windows futimens and utimensat emulation Andrea Mazzoleni 2026-08-18 10:33:08 +02:00
  • 3c88559379 Quote empty arguments in Windows command line generation Andrea Mazzoleni 2026-08-18 10:30:34 +02:00
  • 7ab8aa69c4 Fix false persistent inode reporting on FAT/exFAT/FAT32 under Windows Andrea Mazzoleni 2026-08-18 10:19:24 +02:00
  • 3c1a8c3e7f Update AGENTS.md Andrea Mazzoleni 2026-08-18 10:21:50 +02:00
  • 1e7c9d9226 Update AGENTS.md Andrea Mazzoleni 2026-08-18 10:09:34 +02:00
  • 9acce63c79 Fix import fetch fallback across matching hash candidates Andrea Mazzoleni 2026-08-18 09:22:36 +02:00
  • 4402be51a0 Add regression test for modified hardlink scan recovery Andrea Mazzoleni 2026-08-18 00:29:00 +02:00
  • 3b79e21c2f Document scan phase invariants Andrea Mazzoleni 2026-08-18 00:06:15 +02:00
  • d5d999f11d Fix modified hardlink inode tracking during scan Andrea Mazzoleni 2026-08-17 23:57:56 +02:00
  • 3dfab5232c Prevent partial fix from finalizing incomplete files Andrea Mazzoleni 2026-08-17 23:03:28 +02:00
  • 036b099eae Keep unrecoverable files quarantined until fix completion Andrea Mazzoleni 2026-08-17 22:20:30 +02:00
  • 65e6564e13 Clarify CHG block handling during interrupted sync recovery Andrea Mazzoleni 2026-08-17 21:57:02 +02:00
  • b959f0056e Quiesce read-ahead before thermal spin-down Andrea Mazzoleni 2026-08-17 19:33:26 +02:00
  • 4423c8c895 Detect truncated parity using the contiguous valid physical prefix Andrea Mazzoleni 2026-08-17 18:53:31 +02:00
  • ef6fa54ee2 Fix parity writer error propagation in io_flush and abort sync on parity write failures Andrea Mazzoleni 2026-08-17 18:28:26 +02:00