Skip to content

Commit 4febe93

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

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

src/memory_targets/memory_target_numa.c

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include "../memory_pool_internal.h"
1818
#include "base_alloc.h"
1919
#include "base_alloc_global.h"
20-
#include "base_alloc_linear.h"
2120
#include "memory_target_numa.h"
2221

2322
struct numa_memory_target_t {
@@ -51,8 +50,7 @@ static void numa_finalize(void *memTarget) {
5150
static umf_result_t
5251
numa_targets_create_nodemask(struct numa_memory_target_t **targets,
5352
size_t numTargets, unsigned long **mask,
54-
unsigned *maxnode,
55-
umf_ba_linear_pool_t *linear_allocator) {
53+
unsigned *maxnode, size_t *mask_size) {
5654
assert(targets);
5755
assert(mask);
5856
assert(maxnode);
@@ -83,8 +81,9 @@ numa_targets_create_nodemask(struct numa_memory_target_t **targets,
8381
unsigned bits_per_long = sizeof(unsigned long) * 8;
8482
int nrUlongs = (lastBit + bits_per_long) / bits_per_long;
8583

86-
unsigned long *nodemask = umf_ba_linear_alloc(
87-
linear_allocator, (sizeof(unsigned long) * nrUlongs));
84+
*mask_size = sizeof(unsigned long) * nrUlongs;
85+
86+
unsigned long *nodemask = umf_ba_global_alloc(*mask_size);
8887
if (!nodemask) {
8988
hwloc_bitmap_free(bitmap);
9089
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
@@ -94,7 +93,7 @@ numa_targets_create_nodemask(struct numa_memory_target_t **targets,
9493
hwloc_bitmap_free(bitmap);
9594

9695
if (ret) {
97-
// nodemask is freed during destroying linear_allocator
96+
umf_ba_global_free(nodemask, *mask_size);
9897
return UMF_RESULT_ERROR_UNKNOWN;
9998
}
10099

@@ -116,15 +115,10 @@ static enum umf_result_t numa_memory_provider_create_from_memspace(
116115

117116
unsigned long *nodemask;
118117
unsigned maxnode;
119-
120-
umf_ba_linear_pool_t *linear_allocator =
121-
umf_ba_linear_create(0 /* minimal pool size */);
122-
if (!linear_allocator) {
123-
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
124-
}
118+
size_t nodemask_size;
125119

126120
umf_result_t ret = numa_targets_create_nodemask(
127-
numaTargets, numTargets, &nodemask, &maxnode, linear_allocator);
121+
numaTargets, numTargets, &nodemask, &maxnode, &nodemask_size);
128122
if (ret != UMF_RESULT_SUCCESS) {
129123
return ret;
130124
}
@@ -137,9 +131,8 @@ static enum umf_result_t numa_memory_provider_create_from_memspace(
137131
umf_memory_provider_handle_t numaProvider = NULL;
138132
ret = umfMemoryProviderCreate(umfOsMemoryProviderOps(), &params,
139133
&numaProvider);
140-
umf_ba_linear_destroy(linear_allocator); // nodemask is freed here
134+
umf_ba_global_free(nodemask, nodemask_size);
141135
if (ret) {
142-
143136
return ret;
144137
}
145138

src/memory_targets/memory_target_numa.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#include "../memory_target.h"
1717
#include "../memory_target_ops.h"
18-
#include "base_alloc_linear.h"
1918

2019
#ifdef __cplusplus
2120
extern "C" {

0 commit comments

Comments
 (0)