Commit graph

65 commits

Author SHA1 Message Date
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
bc564e7465 Improve speed benchmark stability with adaptive 1 ms sampling and best-result selection 2026-09-10 23:51:30 +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
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
b991d5e6c8 Use temporal stores for recovered data in SSSE3 and AVX2 REC1OF1 paths 2026-08-31 21:34:10 +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
82089165b5 Add dedicated XOR-only fast path for NEON rec1of1 2026-08-31 20:45:38 +02:00
Andrea Mazzoleni
3288c8cc8c Add machineinfo_struct to query and report system and CPU information in speed test 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
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
ae703ce68c Optimize multi-parity recovery with fused syndrome generation 2026-08-24 11:57:04 +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
6fa2c44caf Add rec1of1 and rec2of2 benchmarks for first parity reconstruction 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
9c6e3952c5 Remove unused MetroHash implementation and references 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
74a62a8d82 Change the speed report link 2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
00b4cbafd0 Merge the CLI and Daemon portable interface 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
255a54a10a More CPU info 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
2db72e0e7e Add CRC support for macOS 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
b94f7a952c In the speed test, set the CPU affinity to the expected best core 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
fd2dc7810f Run the speed test with and without displacement 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
22495abe9e Add AArch64 NEON parity generation and recovery functions 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
76998613da 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-18 23:33:54 +02:00
Andrea Mazzoleni
5795b9706e Use the optimal displacement depending on the number of disks 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
108915254e Assume the assembler supports all x86 SSE/AVX instructions 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
c08a571d88 Add support for AVX2 GFNI 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
557dcda9cd Disable AVX512 on CPUs with narrow shuffle ports or double-pumped 256-bit datapath 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
639167efba Preliminary support for AVX512GFNI 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
03a8927571 Add detection of AVX2GFNI 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
25e8436534 Integrate new AVX512 functions in the speed test 2026-08-18 23:33:52 +02:00
Christoph Hellwig
cf515b82b2 Make all RAID forwarders static and local using a new registration interface
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
aee71ad2d6 Fix default period of the speed test
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-05-27 14:52:41 +02:00
Andrea Mazzoleni
b1534fc21f Avoid a nul period in the speed test 2026-05-21 16:08:03 +02:00
Andrea Mazzoleni
523066ed0f Fix typos in function names
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-04-16 14:31:38 +02:00
Andrea Mazzoleni
befb9b4a92 Fix RISC printf 2026-04-16 13:50:51 +02:00
Andrea Mazzoleni
391784c5ed Add some missing fflush in the speed test 2026-04-16 00:20:26 +02:00
Andrea Mazzoleni
ae9b472898 Add detection of AVX512BW and AVX512GFNI 2026-04-16 00:13:51 +02:00
Andrea Mazzoleni
4799b20929 In the speed benchmark force the same hardware in generation when recovering
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-04-15 20:08:42 +02:00
Andrea Mazzoleni
578033a892 Fix the speed computation for the recovery functions
To make them comparable with the generation function they should be
called only one time, recovering the max number of data disks possible.
2026-04-15 19:31:07 +02:00
Andrea Mazzoleni
f878ff217c Print the CPU architecture in the speed test 2026-04-13 09:57:21 +02:00
Andrea Mazzoleni
0d0431a907 Simpler Copyright string 2026-04-09 17:56:49 +02:00
Christoph Hellwig
60269a1236 Use SPDX (https://spdx.dev/) tags to identify the license used for each
file, and a COPYING file explaining the licensing scheme, with the actual
licenses listed in the LICENSES/ directory.
2026-04-02 16:01:37 +02:00
Andrea Mazzoleni
d451f911c7 Reformat the code with new uncrustify.cfg 2026-02-27 00:39:22 +01:00
Andrea Mazzoleni
b29500c25f Update beautification with uncrustify 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
f6cf240b97 New experimental MuseAir hash 2026-01-11 12:01:12 +01:00
Andrea Mazzoleni
cc2bdad335 Some hash support improvments 2026-01-11 12:01:12 +01:00
Andrea Mazzoleni
00dc3e6a48 New speed test options 2026-01-11 12:01:12 +01:00