Commit graph

125 commits

Author SHA1 Message Date
Andrea Mazzoleni
b78542685f Add portable 128-bit vector parity routines for gen1/gen2/genz to optimize non-x86 CPUs 2026-06-04 21:18:47 +02:00
Andrea Mazzoleni
d03a583523 Use vpternlogq in raid_gen3-6_avx512bw to fuse sequential vpxorq instructions into single 3-way XORs 2026-06-04 17:48:25 +02:00
Andrea Mazzoleni
7a2eac4bb3 Gate AVX-512BW gen1/gen2 behind slow_avx512() to avoid double-pumped shuffle penalties
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-06-04 09:41:53 +02:00
Andrea Mazzoleni
9ce976232c Remove the unused number of data disks from the vector allocation
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
The same addressing rules are applied to the parity disks because
they are used as data disks during recovery operations.
2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
287135e2c1 Inject variable page-offset noise to disk buffer displacement to mitigate prefetcher contention 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
ff1056547d Use the optimal displacement depending on the number of disks 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
fdadb443ad Change RAID AVX512/GFNI functions to use forward iterations 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
54f1185cde Remove the special case of a single data disk when not strictly required 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
33a62a4c74 Remove unused level 0 from the pshufb table 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
5fb82d6195 Change the AVX512BW generation to use pshufb also for Q parity 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
d9798b6377 Extend the pshufb table to include the Q parity coefficients 2026-06-03 22:01:00 +02:00
Andrea Mazzoleni
eff01f8c8f New displacement benchmarks 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
14053fb682 Simplify GFNI implementations 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
31d6c05eea Always build RAID test with USE_RAID_AES 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
e3a0671c00 Assume the assembler supports all x86 SSE/AVX instructions 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
00d272a8b9 Extend the RAID regression test to detect unset parity 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
f9a1370b42 Add support for AVX2 GFNI 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
8ae654d8a6 Disable AVX512 on CPUs with narrow shuffle ports or double-pumped 256-bit datapath 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
c0c10197bd Revise the RAID library Makefile 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
2a3f1e5f2f Be more clear when GFNI is really used 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
821a0e444e Optimize AVX512 gen1 parity with the vpternlogq instruction 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
7e7751a68a Add tables for the AES Polynomial 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
31c394ec84 Comment about the RAID optimizations 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
914a0216b4 Use a simpler approach in the new AVX512 generation functions 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
746a9b8940 Preliminary support for AVX512GFNI 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
5caae12610 Change commenting style 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
e06d8ab550 Add detection of AVX2GFNI 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
b61168a561 Add more AVX512 functions for parity 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
18aa07be36 Preliminary support for ADVX512 2026-06-03 22:00:59 +02:00
Christoph Hellwig
c889153cb2 Make all RAID forwarders static and local using a new registration interface
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
ae9b472898 Add detection of AVX512BW and AVX512GFNI 2026-04-16 00:13:51 +02:00
Andrea Mazzoleni
b709371d2d Fix typos in the comment of the raid library
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 10:53:25 +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
e80734fc4c Fix typos 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
f7798b2357 Update performance test of raid.c
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 / Analyze (push) Has been cancelled
2025-10-14 23:26:34 +02:00
Andrea Mazzoleni
13a4872e69 Revise the top comment of raid.c
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 / Analyze (push) Has been cancelled
2025-10-13 17:32:55 +02:00
Andrea Mazzoleni
56c4076e23 Avoid a warning about function pointer conversion. No functional changes 2025-01-23 15:51:59 +01:00
Andrea Mazzoleni
607564c5fe Fix some typos 2023-12-09 10:45:26 +01:00
Jens Kühnel
6b3ac2a6cb Update address of FSF in GPLv2 2023-08-09 14:44:48 +02:00
Andrea Gelmini
2dacb15516 Fix typos
Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2022-07-21 14:48:48 +02:00
Andrea Gelmini
986e9b4131 Fix typos 2020-05-26 12:50:15 +02:00
Andrea Mazzoleni
21241c5078 Preliminary advise support 2016-05-15 14:50:59 +02:00
Andrea Mazzoleni
9430106c71 Allow to disable inline assembly from configure
This is required for the -fsanitize options that don't
support inline assembly statements.
2016-01-09 11:19:52 +01:00
Andrea Mazzoleni
cffa2f0c10 Better Atom prediction of fastest RAID implementation 2015-11-21 09:08:53 +01:00
Andrea Mazzoleni
77117b1cd5 Add some more warning checks, and fix the ones reported 2015-08-05 09:42:11 +02:00
Andrea Mazzoleni
1c06674d1a Some comments about x86 optimizations 2015-06-20 16:47:50 +02:00
Andrea Mazzoleni
2ae9d8d41a Add recognition of new Atom CPUs 2015-06-04 22:38:32 +02:00
Andrea Mazzoleni
35b1b08b6c Clean the cpu.h header 2015-03-30 23:36:36 +02:00
Andrea Mazzoleni
8a0d49b21e Fix the selftest due missing return value 2015-03-30 22:23:23 +02:00