Skip to content

Commit 5a377b9

Browse files
committed
Replace linear base allocator with the global one in memspace
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 2c2d7aa commit 5a377b9

File tree

3 files changed

+11
-23
lines changed

3 files changed

+11
-23
lines changed

src/memspace.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ static umf_result_t verifyMemTargetsTypes(umf_memspace_handle_t memspace) {
3838
static umf_result_t memoryTargetHandlesToPriv(umf_memspace_handle_t memspace,
3939
void ***pPrivs) {
4040
assert(memspace);
41-
void **privs = umf_ba_linear_alloc(memspace->linear_allocator,
42-
sizeof(void *) * memspace->size);
41+
void **privs = umf_ba_global_alloc(sizeof(void *) * memspace->size);
4342
if (privs == NULL) {
4443
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
4544
}
@@ -70,7 +69,8 @@ umf_result_t umfPoolCreateFromMemspace(umf_memspace_handle_t memspace,
7069
assert(verifyMemTargetsTypes(memspace) == UMF_RESULT_SUCCESS);
7170
ret = memspace->nodes[0]->ops->pool_create_from_memspace(
7271
memspace, privs, memspace->size, policy, pool);
73-
// privs is freed during destroying memspace->linear_allocator
72+
73+
umf_ba_global_free(privs, sizeof(void *) * memspace->size);
7474

7575
return ret;
7676
}
@@ -94,7 +94,8 @@ umfMemoryProviderCreateFromMemspace(umf_memspace_handle_t memspace,
9494
assert(verifyMemTargetsTypes(memspace) == UMF_RESULT_SUCCESS);
9595
ret = memspace->nodes[0]->ops->memory_provider_create_from_memspace(
9696
memspace, privs, memspace->size, policy, provider);
97-
// privs is freed during destroying memspace->linear_allocator
97+
98+
umf_ba_global_free(privs, sizeof(void *) * memspace->size);
9899

99100
return ret;
100101
}
@@ -105,6 +106,7 @@ void umfMemspaceDestroy(umf_memspace_handle_t memspace) {
105106
umfMemoryTargetDestroy(memspace->nodes[i]);
106107
}
107108

108-
umf_ba_linear_destroy(memspace->linear_allocator);
109+
umf_ba_global_free(memspace->nodes,
110+
memspace->size * sizeof(umf_memory_target_handle_t));
109111
umf_ba_global_free(memspace, sizeof(struct umf_memspace_t));
110112
}

src/memspace_internal.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <umf/memspace.h>
1414

1515
#include "base_alloc.h"
16-
#include "base_alloc_linear.h"
1716
#include "memory_target.h"
1817

1918
#ifdef __cplusplus
@@ -23,9 +22,6 @@ extern "C" {
2322
struct umf_memspace_t {
2423
size_t size;
2524
umf_memory_target_handle_t *nodes;
26-
27-
// own local linear base allocator
28-
umf_ba_linear_pool_t *linear_allocator;
2925
};
3026

3127
///

src/memspaces/memspace_numa.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include "../memory_targets/memory_target_numa.h"
1313
#include "../memspace_internal.h"
1414
#include "base_alloc_global.h"
15-
#include "base_alloc_linear.h"
1615
#include "memspace_numa.h"
1716

1817
enum umf_result_t
@@ -30,18 +29,9 @@ umfMemspaceCreateFromNumaArray(size_t *nodeIds, size_t numIds,
3029
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
3130
}
3231

33-
umf_ba_linear_pool_t *linear_allocator =
34-
umf_ba_linear_create(0 /* minimal pool size */);
35-
if (!linear_allocator) {
36-
ret = UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
37-
goto err_umf_ba_linear_create;
38-
}
39-
40-
memspace->linear_allocator = linear_allocator;
41-
4232
memspace->size = numIds;
43-
memspace->nodes = (umf_memory_target_handle_t *)umf_ba_linear_alloc(
44-
linear_allocator, numIds * sizeof(umf_memory_target_handle_t));
33+
memspace->nodes = (umf_memory_target_handle_t *)umf_ba_global_alloc(
34+
memspace->size * sizeof(umf_memory_target_handle_t));
4535
if (!memspace->nodes) {
4636
ret = UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
4737
goto err_nodes_alloc;
@@ -62,12 +52,12 @@ umfMemspaceCreateFromNumaArray(size_t *nodeIds, size_t numIds,
6252
return UMF_RESULT_SUCCESS;
6353

6454
err_target_create:
55+
umf_ba_global_free(memspace->nodes,
56+
memspace->size * sizeof(umf_memory_target_handle_t));
6557
for (size_t i = 0; i < nodeIdx; i++) {
6658
umfMemoryTargetDestroy(memspace->nodes[i]);
6759
}
6860
err_nodes_alloc:
69-
umf_ba_linear_destroy(linear_allocator);
70-
err_umf_ba_linear_create:
7161
umf_ba_global_free(memspace, sizeof(struct umf_memspace_t));
7262
return ret;
7363
}

0 commit comments

Comments
 (0)