Remove unused argument from recovery functions

This commit is contained in:
Andrea Mazzoleni 2026-08-24 15:26:20 +02:00
parent 46ebce4e3c
commit e74b03a062
3 changed files with 64 additions and 82 deletions

View file

@ -882,7 +882,7 @@ static __always_inline void raid_genX_avx2ext(int nd, size_t size, void **vv, in
/*
* RAID recovering for one disk AVX2 implementation
*/
static __always_inline void raid_rec1_avx2_delta(int nr, int *id, int *ip, int nd, size_t size, void **vv)
static __always_inline void raid_rec1_avx2_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
uint8_t *p;
@ -891,8 +891,6 @@ static __always_inline void raid_rec1_avx2_delta(int nr, int *id, int *ip, int n
uint8_t V;
size_t i;
(void)nr; /* unused, it's always 1 */
/* setup the coefficients matrix */
G = A(ip[0], id[0]);
@ -946,31 +944,28 @@ static __always_inline void raid_rec1_avx2_delta(int nr, int *id, int *ip, int n
/*
* RAID recovering for two disks AVX2 implementation
*/
static __always_inline void raid_rec2_avx2_delta(int nr, int *id, int *ip, int nd, size_t size, void **vv)
static __always_inline void raid_rec2_avx2_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
const int N = 2;
uint8_t *p[N];
uint8_t *pa[N];
uint8_t G[N * N];
uint8_t V[N * N];
uint8_t *p[2];
uint8_t *pa[2];
uint8_t G[2 * 2];
uint8_t V[2 * 2];
size_t i;
int j, k;
(void)nr; /* unused, it's always 2 */
/* setup the coefficients matrix */
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k)
G[j * N + k] = A(ip[j], id[k]);
for (j = 0; j < 2; ++j)
for (k = 0; k < 2; ++k)
G[j * 2 + k] = A(ip[j], id[k]);
/* invert it to solve the system of linear equations */
raid_invert(G, V, N);
raid_invert(G, V, 2);
/* compute delta parity */
raid_delta_gen(N, id, ip, nd, size, vv);
raid_delta_gen(2, id, ip, nd, size, vv);
for (j = 0; j < N; ++j) {
for (j = 0; j < 2; ++j) {
p[j] = v[nd + ip[j]];
pa[j] = v[id[j]];
}
@ -1516,26 +1511,25 @@ static __always_inline void raid_recX_avx2(int nr, int *id, int *ip, int nd, siz
static __always_inline void raid_rec2_avx2ext_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
const int N = 2;
uint8_t *p[N];
uint8_t *pa[N];
uint8_t G[N * N];
uint8_t V[N * N];
uint8_t *p[2];
uint8_t *pa[2];
uint8_t G[2 * 2];
uint8_t V[2 * 2];
size_t i;
int j, k;
/* setup the coefficients matrix */
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k)
G[j * N + k] = A(ip[j], id[k]);
for (j = 0; j < 2; ++j)
for (k = 0; k < 2; ++k)
G[j * 2 + k] = A(ip[j], id[k]);
/* invert it to solve the system of linear equations */
raid_invert(G, V, N);
raid_invert(G, V, 2);
/* compute delta parity */
raid_delta_gen(N, id, ip, nd, size, vv);
raid_delta_gen(2, id, ip, nd, size, vv);
for (j = 0; j < N; ++j) {
for (j = 0; j < 2; ++j) {
p[j] = v[nd + ip[j]];
pa[j] = v[id[j]];
}
@ -1614,10 +1608,9 @@ static __always_inline void raid_rec2_avx2ext_delta(int *id, int *ip, int nd, si
static __always_inline void raid_rec2of2_avx2ext(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
const int N = 2;
uint8_t *p[N];
uint8_t *pa[N];
uint8_t C[N];
uint8_t *p[2];
uint8_t *pa[2];
uint8_t C[2];
size_t i;
/* get multiplication coefficients */
@ -1625,7 +1618,7 @@ static __always_inline void raid_rec2of2_avx2ext(int *id, int *ip, int nd, size_
C[1] = inv(powgen(id[0]) ^ powgen(id[1]));
/* compute delta parity */
raid_delta_gen(N, id, ip, nd, size, vv);
raid_delta_gen(2, id, ip, nd, size, vv);
p[0] = v[nd];
p[1] = v[nd + 1];
@ -2362,7 +2355,7 @@ void raid_rec1_avx2(int nr, int *id, int *ip, int nd, size_t size, void **vv)
return;
}
raid_rec1_avx2_delta(1, id, ip, nd, size, vv);
raid_rec1_avx2_delta(id, ip, nd, size, vv);
}
void raid_rec2_avx2(int nr, int *id, int *ip, int nd, size_t size, void **vv)
@ -2375,7 +2368,7 @@ void raid_rec2_avx2(int nr, int *id, int *ip, int nd, size_t size, void **vv)
return;
}
raid_rec2_avx2_delta(2, id, ip, nd, size, vv);
raid_rec2_avx2_delta(id, ip, nd, size, vv);
}
void raid_rec3_avx2(int nr, int *id, int *ip, int nd, size_t size, void **vv)
@ -2415,7 +2408,7 @@ void raid_rec1_avx2ext(int nr, int *id, int *ip, int nd, size_t size, void **vv)
/* if recovering with Q uses the delta function */
if (ip[0] == 1) {
raid_rec1_avx2_delta(1, id, ip, nd, size, vv);
raid_rec1_avx2_delta(id, ip, nd, size, vv);
return;
}

View file

@ -581,7 +581,6 @@ void raid_rec2_int8(int nr, int *id, int *ip, int nd, size_t size, void **vv)
uint8_t *pa;
uint8_t *q;
uint8_t *qa;
const int N = 2;
const uint8_t *T[2][2];
uint8_t G[2 * 2];
uint8_t V[2 * 2];
@ -597,17 +596,17 @@ void raid_rec2_int8(int nr, int *id, int *ip, int nd, size_t size, void **vv)
}
/* setup the coefficients matrix */
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k)
G[j * N + k] = A(ip[j], id[k]);
for (j = 0; j < 2; ++j)
for (k = 0; k < 2; ++k)
G[j * 2 + k] = A(ip[j], id[k]);
/* invert it to solve the system of linear equations */
raid_invert(G, V, N);
raid_invert(G, V, 2);
/* get multiplication tables */
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k)
T[j][k] = table(V[j * N + k]);
for (j = 0; j < 2; ++j)
for (k = 0; k < 2; ++k)
T[j][k] = table(V[j * 2 + k]);
/* compute delta parity */
raid_delta_gen(2, id, ip, nd, size, vv);

View file

@ -1152,7 +1152,7 @@ static __always_inline void raid_genX_ssse3ext(int nd, size_t size, void **vv, i
/*
* RAID recovering for one disk SSSE3 implementation
*/
static __always_inline void raid_rec1_ssse3_delta(int nr, int *id, int *ip, int nd, size_t size, void **vv)
static __always_inline void raid_rec1_ssse3_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
uint8_t *p;
@ -1161,8 +1161,6 @@ static __always_inline void raid_rec1_ssse3_delta(int nr, int *id, int *ip, int
uint8_t V;
size_t i;
(void)nr; /* unused, it's always 1 */
/* setup the coefficients matrix */
G = A(ip[0], id[0]);
@ -1203,31 +1201,28 @@ static __always_inline void raid_rec1_ssse3_delta(int nr, int *id, int *ip, int
/*
* RAID recovering for two disks SSSE3 implementation
*/
static __always_inline void raid_rec2_ssse3_delta(int nr, int *id, int *ip, int nd, size_t size, void **vv)
static __always_inline void raid_rec2_ssse3_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
const int N = 2;
uint8_t *p[N];
uint8_t *pa[N];
uint8_t G[N * N];
uint8_t V[N * N];
uint8_t *p[2];
uint8_t *pa[2];
uint8_t G[2 * 2];
uint8_t V[2 * 2];
size_t i;
int j, k;
(void)nr; /* unused, it's always 2 */
/* setup the coefficients matrix */
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k)
G[j * N + k] = A(ip[j], id[k]);
for (j = 0; j < 2; ++j)
for (k = 0; k < 2; ++k)
G[j * 2 + k] = A(ip[j], id[k]);
/* invert it to solve the system of linear equations */
raid_invert(G, V, N);
raid_invert(G, V, 2);
/* compute delta parity */
raid_delta_gen(N, id, ip, nd, size, vv);
raid_delta_gen(2, id, ip, nd, size, vv);
for (j = 0; j < N; ++j) {
for (j = 0; j < 2; ++j) {
p[j] = v[nd + ip[j]];
pa[j] = v[id[j]];
}
@ -1726,7 +1721,7 @@ static __always_inline void raid_recX_ssse3(int nr, int *id, int *ip,
/*
* RAID recovering for one disk SSSE3 extended implementation
*/
static __always_inline void raid_rec1_ssse3ext_delta(int nr, int *id, int *ip, int nd, size_t size, void **vv)
static __always_inline void raid_rec1_ssse3ext_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
uint8_t *p;
@ -1735,8 +1730,6 @@ static __always_inline void raid_rec1_ssse3ext_delta(int nr, int *id, int *ip, i
uint8_t V;
size_t i;
(void)nr; /* unused, it's always 1 */
/* setup the coefficients matrix */
G = A(ip[0], id[0]);
@ -1828,31 +1821,28 @@ static __always_inline void raid_rec1_ssse3ext_delta(int nr, int *id, int *ip, i
/*
* RAID recovering for two disks SSSE3 extended implementation
*/
static __always_inline void raid_rec2_ssse3ext_delta(int nr, int *id, int *ip, int nd, size_t size, void **vv)
static __always_inline void raid_rec2_ssse3ext_delta(int *id, int *ip, int nd, size_t size, void **vv)
{
uint8_t **v = (uint8_t **)vv;
const int N = 2;
uint8_t *p[N];
uint8_t *pa[N];
uint8_t G[N * N];
uint8_t V[N * N];
uint8_t *p[2];
uint8_t *pa[2];
uint8_t G[2 * 2];
uint8_t V[2 * 2];
size_t i;
int j, k;
(void)nr; /* unused, it's always 2 */
/* setup the coefficients matrix */
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k)
G[j * N + k] = A(ip[j], id[k]);
for (j = 0; j < 2; ++j)
for (k = 0; k < 2; ++k)
G[j * 2 + k] = A(ip[j], id[k]);
/* invert it to solve the system of linear equations */
raid_invert(G, V, N);
raid_invert(G, V, 2);
/* compute delta parity */
raid_delta_gen(N, id, ip, nd, size, vv);
raid_delta_gen(2, id, ip, nd, size, vv);
for (j = 0; j < N; ++j) {
for (j = 0; j < 2; ++j) {
p[j] = v[nd + ip[j]];
pa[j] = v[id[j]];
}
@ -2611,7 +2601,7 @@ void raid_rec1_ssse3(int nr, int *id, int *ip, int nd, size_t size, void **vv)
return;
}
raid_rec1_ssse3_delta(1, id, ip, nd, size, vv);
raid_rec1_ssse3_delta(id, ip, nd, size, vv);
}
void raid_rec2_ssse3(int nr, int *id, int *ip, int nd, size_t size, void **vv)
@ -2624,7 +2614,7 @@ void raid_rec2_ssse3(int nr, int *id, int *ip, int nd, size_t size, void **vv)
return;
}
raid_rec2_ssse3_delta(2, id, ip, nd, size, vv);
raid_rec2_ssse3_delta(id, ip, nd, size, vv);
}
void raid_rec3_ssse3(int nr, int *id, int *ip, int nd, size_t size, void **vv)
@ -2662,7 +2652,7 @@ void raid_rec1_ssse3ext(int nr, int *id, int *ip, int nd, size_t size, void **vv
return;
}
raid_rec1_ssse3ext_delta(1, id, ip, nd, size, vv);
raid_rec1_ssse3ext_delta(id, ip, nd, size, vv);
}
void raid_rec2_ssse3ext(int nr, int *id, int *ip, int nd, size_t size, void **vv)
@ -2675,7 +2665,7 @@ void raid_rec2_ssse3ext(int nr, int *id, int *ip, int nd, size_t size, void **vv
return;
}
raid_rec2_ssse3ext_delta(2, id, ip, nd, size, vv);
raid_rec2_ssse3ext_delta(id, ip, nd, size, vv);
}
void raid_rec3_ssse3ext(int nr, int *id, int *ip, int nd, size_t size, void **vv)