Commit graph

2295 commits

Author SHA1 Message Date
Andrea Mazzoleni
f76fcf7ab1 Add AArch64 NEON parity generation and recovery functions 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
d9c6b7989e Use vpternlogq in raid_gen3-6_avx512bw to fuse sequential vpxorq instructions into single 3-way XORs 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
43e0104101 Gate AVX-512BW gen1/gen2 behind slow_avx512() to avoid double-pumped shuffle penalties 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
99e7dd786c Requires C99 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
0ff9d2b6f4 Further conversions from 32 to 64 bits 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
090342ce93 Migrate block_off_t to 64-bit with updated CLI parsing, VLQ serialization, and format specifiers 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
a907dbc492 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-04 09:48:00 +02:00
Andrea Mazzoleni
785562a367 Inject variable page-offset noise to disk buffer displacement to mitigate prefetcher contention 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
73c0b9285c Use the optimal displacement depending on the number of disks 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
ef750e7d59 Change RAID AVX512/GFNI functions to use forward iterations 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
dc97ecfc6a Remove the special case of a single data disk when not strictly required 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
1463cd1be4 Remove unused level 0 from the pshufb table 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
d0fdc02313 Change the AVX512BW generation to use pshufb also for Q parity 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
064e033542 Extend the pshufb table to include the Q parity coefficients 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
ae89addf87 New displacement benchmarks 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
a9363982ed Simplify GFNI implementations 2026-08-04 09:48:00 +02:00
Andrea Mazzoleni
d4a67908c7 Always build RAID test with USE_RAID_AES 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
4406714811 Assume the assembler supports all x86 SSE/AVX instructions 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
74185323eb Extend the RAID regression test to detect unset parity 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
6e9f17bb96 Add support for AVX2 GFNI 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
e04249a5af Disable AVX512 on CPUs with narrow shuffle ports or double-pumped 256-bit datapath 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
c394629684 Revise the RAID library Makefile 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
a87135af97 Be more clear when GFNI is really used 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
37536de677 Optimize AVX512 gen1 parity with the vpternlogq instruction 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
e9ac890785 Update TODO 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
0978d146aa Extend io_init() to support arbitrary combinations of data and parity operations 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
44a2bec853 Do not expose Windows threads keys 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
d2e7efee6b Validate GUIDs before passing them to PowerShell 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
7319b8e6ca Take into account that btrfs devices can be not contiguous 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
1e9c4586cc Portability 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
b0579142fa Add tables for the AES Polynomial 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
59be50319d Update TODO 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
2debe49f74 Secure the popen use 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
8565fb0e0d Delete snapshot links in Windows 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
54cfead6bd Report issues in github 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
8318ce9106 Update documentation about snapshots 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
e3bb158fcc Comment about the RAID optimizations 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
b388c8be13 Use a simpler approach in the new AVX512 generation functions 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
8d08ff486d Automatically exclude the snapshot .snapraid directory and content files 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
c080c3aa91 Preliminary support for AVX512GFNI 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
16a8c90bd8 Allow to configure path of external tools 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
5d3164e3d7 Secure external tools execution 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
deb800cb57 Add Windows VirtualShadowCopy support for snapshots 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
33af95b359 Add Windows support for symlink of directories 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
7c6ba28510 In Windows readlink now convert \ to / to match symlink behaviour 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
0faad24fb5 Always use PATH_MAX instead of MAX_PATH (limited to 260) 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
ffdc3f8d92 Revise manpage pattern section 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
31de3cc0a8 Sanitize shell execution 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
a1e2cd15b0 Add ZFS support 2026-08-04 09:47:59 +02:00
Andrea Mazzoleni
e8d6dabec7 Rework snapshot interface 2026-08-04 09:47:59 +02:00