Add dedicated XOR-only fast path for NEON rec1of1

This commit is contained in:
Andrea Mazzoleni 2026-08-31 10:02:27 +02:00
parent b9d0dcd173
commit 82089165b5
3 changed files with 12 additions and 4 deletions

View file

@ -1265,6 +1265,8 @@ void speed_rec(int nd, void** v, int size, int delta, int period)
#ifdef CONFIG_NEON
SPEED_START {
/* raid_rec1of1() internally calls raid_gen() */
raid_gen_force(1, raid_gen1_neon);
raid_rec1_neon(1, id, ip, nd, size, v);
} SPEED_STOP

View file

@ -1377,10 +1377,14 @@ void raid_gen6_neon_aes(int nd, size_t size, void **vv)
void raid_rec1_neon(int nr, int *id, int *ip, int nd, size_t size, void **vv)
{
BUG_ON(nr != 1);
if (ip[0] == 0)
raid_recX_neon_12(1, 1, id, ip, nd, size, vv);
else
raid_recX_neon_12(1, 0, id, ip, nd, size, vv);
/* if recovering with P uses the delta function */
if (ip[0] == 0) {
raid_rec1of1(id, nd, size, vv);
return;
}
raid_recX_neon_12(1, 0, id, ip, nd, size, vv);
}
void raid_rec2_neon(int nr, int *id, int *ip, int nd, size_t size, void **vv)

View file

@ -1160,6 +1160,8 @@ void speed_rec(int nd, void **v, int size, int delta, int period)
#ifdef CONFIG_NEON
SPEED_START {
/* raid_rec1of1() internally calls raid_gen() */
raid_gen_force(1, raid_gen1_neon);
raid_rec1_neon(1, id, ip, nd, size, v);
} SPEED_STOP