mirror of
https://github.com/amadvance/snapraid.git
synced 2026-10-26 19:01:57 -04:00
Use the optimal displacement depending on the number of disks
This commit is contained in:
parent
8f45779253
commit
f181eb96e7
4 changed files with 56 additions and 33 deletions
|
|
@ -28,10 +28,21 @@ void *raid_malloc_align(size_t size, size_t align_size, void **freeptr)
|
|||
|
||||
void *raid_malloc(size_t size, void **freeptr)
|
||||
{
|
||||
return raid_malloc_align(size, RAID_MALLOC_ALIGN, freeptr);
|
||||
return raid_malloc_align(size, RAID_MALLOC_ALIGN, freeptr);
|
||||
}
|
||||
|
||||
void **raid_malloc_vector_align(int nd, int n, size_t size, size_t align_size, size_t displacement_size, void **freeptr)
|
||||
unsigned raid_optimal_displacement(int n)
|
||||
{
|
||||
if (n <= 8)
|
||||
return 24 * 64;
|
||||
if (n <= 16)
|
||||
return 28 * 64;
|
||||
if (n <= 32)
|
||||
return 30 * 64;
|
||||
return 33 * 64;
|
||||
}
|
||||
|
||||
void **raid_malloc_vector_align(int nd, int n, size_t size, size_t align_size, ssize_t displacement_size, void **freeptr)
|
||||
{
|
||||
void **v;
|
||||
unsigned char *va;
|
||||
|
|
@ -39,6 +50,8 @@ void **raid_malloc_vector_align(int nd, int n, size_t size, size_t align_size, s
|
|||
|
||||
BUG_ON(n <= 0 || nd < 0);
|
||||
|
||||
(void)nd;
|
||||
|
||||
v = malloc(n * sizeof(void *));
|
||||
if (!v) {
|
||||
/* LCOV_EXCL_START */
|
||||
|
|
@ -64,7 +77,7 @@ void **raid_malloc_vector_align(int nd, int n, size_t size, size_t align_size, s
|
|||
|
||||
void **raid_malloc_vector(int nd, int n, size_t size, void **freeptr)
|
||||
{
|
||||
return raid_malloc_vector_align(nd, n, size, RAID_MALLOC_ALIGN, RAID_MALLOC_DISPLACEMENT, freeptr);
|
||||
return raid_malloc_vector_align(nd, n, size, RAID_MALLOC_ALIGN, raid_optimal_displacement(n), freeptr);
|
||||
}
|
||||
|
||||
void raid_mrand_vector(unsigned seed, int n, size_t size, void **vv)
|
||||
|
|
@ -131,4 +144,3 @@ int raid_mtest_vector(int n, size_t size, void **vv)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue