Skip to content

Commit ba2cafc

Browse files
authored
Merge pull request #623 from lplewa/memtarget_refactor
Memtarget refactor
2 parents bdb2a9e + a4b0766 commit ba2cafc

17 files changed

+175
-162
lines changed

include/umf/memtarget.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
*
3+
* Copyright (C) 2024 Intel Corporation
4+
*
5+
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
6+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
*
8+
*/
9+
10+
#ifndef UMF_MEMTARGET_H
11+
#define UMF_MEMTARGET_H 1
12+
13+
#ifdef __cplusplus
14+
extern "C" {
15+
#endif
16+
17+
typedef struct umf_memtarget_t *umf_memtarget_handle_t;
18+
typedef const struct umf_memtarget_t *umf_const_memtarget_handle_t;
19+
20+
#ifdef __cplusplus
21+
}
22+
#endif
23+
24+
#endif /* UMF_MEMTARGET_H */

src/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ set(UMF_SOURCES
6868
memory_pool.c
6969
memory_provider.c
7070
memory_provider_get_last_failed.c
71-
memory_target.c
71+
memtarget.c
7272
mempolicy.c
7373
memspace.c
7474
provider/provider_tracking.c
@@ -86,7 +86,7 @@ set(UMF_SOURCES_WINDOWS libumf_windows.c)
8686
set(UMF_SOURCES_COMMON_LINUX_MACOSX
8787
provider/provider_os_memory.c
8888
provider/provider_os_memory_posix.c
89-
memory_targets/memory_target_numa.c
89+
memtargets/memtarget_numa.c
9090
memspaces/memspace_numa.c
9191
memspaces/memspace_host_all.c
9292
memspaces/memspace_highest_capacity.c
@@ -183,7 +183,7 @@ target_include_directories(
183183
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/critnib>
184184
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/provider>
185185
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/memspaces>
186-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/memory_targets>
186+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/memtargets>
187187
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
188188

189189
install(TARGETS umf EXPORT ${PROJECT_NAME}-targets)

src/memory_target.h

Lines changed: 0 additions & 51 deletions
This file was deleted.

src/memspace.c

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

1515
#include "base_alloc_global.h"
16-
#include "memory_target.h"
17-
#include "memory_target_ops.h"
1816
#include "memspace_internal.h"
17+
#include "memtarget_internal.h"
18+
#include "memtarget_ops.h"
1919

2020
#ifndef NDEBUG
2121
static umf_result_t
@@ -25,7 +25,7 @@ verifyMemTargetsTypes(umf_const_memspace_handle_t memspace) {
2525
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
2626
}
2727

28-
const struct umf_memory_target_ops_t *ops = memspace->nodes[0]->ops;
28+
const struct umf_memtarget_ops_t *ops = memspace->nodes[0]->ops;
2929
for (size_t i = 1; i < memspace->size; i++) {
3030
if (memspace->nodes[i]->ops != ops) {
3131
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
@@ -66,7 +66,7 @@ umf_result_t umfPoolCreateFromMemspace(umf_const_memspace_handle_t memspace,
6666
return ret;
6767
}
6868

69-
// TODO: for now, we only support memspaces that consist of memory_targets
69+
// TODO: for now, we only support memspaces that consist of memtargets
7070
// of the same type. Fix this.
7171
assert(verifyMemTargetsTypes(memspace) == UMF_RESULT_SUCCESS);
7272
ret = memspace->nodes[0]->ops->pool_create_from_memspace(
@@ -91,7 +91,7 @@ umfMemoryProviderCreateFromMemspace(umf_const_memspace_handle_t memspace,
9191
return ret;
9292
}
9393

94-
// TODO: for now, we only support memspaces that consist of memory_targets
94+
// TODO: for now, we only support memspaces that consist of memtargets
9595
// of the same type. Fix this.
9696
assert(verifyMemTargetsTypes(memspace) == UMF_RESULT_SUCCESS);
9797
ret = memspace->nodes[0]->ops->memory_provider_create_from_memspace(
@@ -105,7 +105,7 @@ umfMemoryProviderCreateFromMemspace(umf_const_memspace_handle_t memspace,
105105
void umfMemspaceDestroy(umf_memspace_handle_t memspace) {
106106
assert(memspace);
107107
for (size_t i = 0; i < memspace->size; i++) {
108-
umfMemoryTargetDestroy(memspace->nodes[i]);
108+
umfMemtargetDestroy(memspace->nodes[i]);
109109
}
110110

111111
umf_ba_global_free(memspace->nodes);
@@ -126,7 +126,7 @@ umf_result_t umfMemspaceClone(umf_const_memspace_handle_t hMemspace,
126126

127127
clone->size = hMemspace->size;
128128
clone->nodes =
129-
umf_ba_global_alloc(sizeof(umf_memory_target_handle_t) * clone->size);
129+
umf_ba_global_alloc(sizeof(umf_memtarget_handle_t) * clone->size);
130130
if (!clone->nodes) {
131131
umf_ba_global_free(clone);
132132
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
@@ -136,7 +136,7 @@ umf_result_t umfMemspaceClone(umf_const_memspace_handle_t hMemspace,
136136
umf_result_t ret;
137137

138138
for (i = 0; i < clone->size; i++) {
139-
ret = umfMemoryTargetClone(hMemspace->nodes[i], &clone->nodes[i]);
139+
ret = umfMemtargetClone(hMemspace->nodes[i], &clone->nodes[i]);
140140
if (ret != UMF_RESULT_SUCCESS) {
141141
goto err;
142142
}
@@ -148,21 +148,21 @@ umf_result_t umfMemspaceClone(umf_const_memspace_handle_t hMemspace,
148148
err:
149149
while (i != 0) {
150150
i--;
151-
umfMemoryTargetDestroy(clone->nodes[i]);
151+
umfMemtargetDestroy(clone->nodes[i]);
152152
}
153153
umf_ba_global_free(clone->nodes);
154154
umf_ba_global_free(clone);
155155
return ret;
156156
}
157157

158-
struct memory_target_sort_entry {
158+
struct memtarget_sort_entry {
159159
uint64_t property;
160-
umf_memory_target_handle_t node;
160+
umf_memtarget_handle_t node;
161161
};
162162

163163
static int propertyCmp(const void *a, const void *b) {
164-
const struct memory_target_sort_entry *entryA = a;
165-
const struct memory_target_sort_entry *entryB = b;
164+
const struct memtarget_sort_entry *entryA = a;
165+
const struct memtarget_sort_entry *entryB = b;
166166

167167
if (entryA->property < entryB->property) {
168168
return 1;
@@ -175,14 +175,14 @@ static int propertyCmp(const void *a, const void *b) {
175175

176176
umf_result_t
177177
umfMemspaceSortDesc(umf_memspace_handle_t hMemspace,
178-
umf_result_t (*getProperty)(umf_memory_target_handle_t node,
178+
umf_result_t (*getProperty)(umf_memtarget_handle_t node,
179179
uint64_t *property)) {
180180
if (!hMemspace || !getProperty) {
181181
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
182182
}
183183

184-
struct memory_target_sort_entry *entries = umf_ba_global_alloc(
185-
sizeof(struct memory_target_sort_entry) * hMemspace->size);
184+
struct memtarget_sort_entry *entries = umf_ba_global_alloc(
185+
sizeof(struct memtarget_sort_entry) * hMemspace->size);
186186
if (!entries) {
187187
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
188188
}
@@ -198,7 +198,7 @@ umfMemspaceSortDesc(umf_memspace_handle_t hMemspace,
198198
}
199199
}
200200

201-
qsort(entries, hMemspace->size, sizeof(struct memory_target_sort_entry),
201+
qsort(entries, hMemspace->size, sizeof(struct memtarget_sort_entry),
202202
propertyCmp);
203203

204204
// apply the order to the original array
@@ -218,7 +218,7 @@ umf_result_t umfMemspaceFilter(umf_const_memspace_handle_t hMemspace,
218218
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
219219
}
220220

221-
umf_memory_target_handle_t *uniqueBestNodes =
221+
umf_memtarget_handle_t *uniqueBestNodes =
222222
umf_ba_global_alloc(hMemspace->size * sizeof(*uniqueBestNodes));
223223
if (!uniqueBestNodes) {
224224
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
@@ -228,7 +228,7 @@ umf_result_t umfMemspaceFilter(umf_const_memspace_handle_t hMemspace,
228228

229229
size_t numUniqueBestNodes = 0;
230230
for (size_t nodeIdx = 0; nodeIdx < hMemspace->size; nodeIdx++) {
231-
umf_memory_target_handle_t target = NULL;
231+
umf_memtarget_handle_t target = NULL;
232232
ret = getTarget(hMemspace->nodes[nodeIdx], hMemspace->nodes,
233233
hMemspace->size, &target);
234234
if (ret != UMF_RESULT_SUCCESS) {
@@ -268,8 +268,8 @@ umf_result_t umfMemspaceFilter(umf_const_memspace_handle_t hMemspace,
268268

269269
size_t cloneIdx = 0;
270270
for (cloneIdx = 0; cloneIdx < newMemspace->size; cloneIdx++) {
271-
ret = umfMemoryTargetClone(uniqueBestNodes[cloneIdx],
272-
&newMemspace->nodes[cloneIdx]);
271+
ret = umfMemtargetClone(uniqueBestNodes[cloneIdx],
272+
&newMemspace->nodes[cloneIdx]);
273273
if (ret != UMF_RESULT_SUCCESS) {
274274
goto err_free_cloned_nodes;
275275
}
@@ -283,7 +283,7 @@ umf_result_t umfMemspaceFilter(umf_const_memspace_handle_t hMemspace,
283283
err_free_cloned_nodes:
284284
while (cloneIdx != 0) {
285285
cloneIdx--;
286-
umfMemoryTargetDestroy(newMemspace->nodes[cloneIdx]);
286+
umfMemtargetDestroy(newMemspace->nodes[cloneIdx]);
287287
}
288288
umf_ba_global_free(newMemspace->nodes);
289289
err_free_new_memspace:

src/memspace_internal.h

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

1515
#include "base_alloc.h"
16-
#include "memory_target.h"
16+
#include "memtarget_internal.h"
1717

1818
#ifdef __cplusplus
1919
extern "C" {
2020
#endif
2121

2222
struct umf_memspace_t {
2323
size_t size;
24-
umf_memory_target_handle_t *nodes;
24+
umf_memtarget_handle_t *nodes;
2525
};
2626

2727
///
@@ -30,19 +30,18 @@ struct umf_memspace_t {
3030
umf_result_t umfMemspaceClone(umf_const_memspace_handle_t hMemspace,
3131
umf_memspace_handle_t *outHandle);
3232

33-
typedef umf_result_t (*umfGetPropertyFn)(umf_memory_target_handle_t,
34-
uint64_t *);
33+
typedef umf_result_t (*umfGetPropertyFn)(umf_memtarget_handle_t, uint64_t *);
3534

3635
///
3736
/// \brief Sorts memspace by getProperty() in descending order
3837
///
3938
umf_result_t umfMemspaceSortDesc(umf_memspace_handle_t hMemspace,
4039
umfGetPropertyFn getProperty);
4140

42-
typedef umf_result_t (*umfGetTargetFn)(umf_memory_target_handle_t initiator,
43-
umf_memory_target_handle_t *nodes,
41+
typedef umf_result_t (*umfGetTargetFn)(umf_memtarget_handle_t initiator,
42+
umf_memtarget_handle_t *nodes,
4443
size_t numNodes,
45-
umf_memory_target_handle_t *target);
44+
umf_memtarget_handle_t *target);
4645

4746
///
4847
/// \brief Filters the targets using getTarget() to create a new memspace

src/memspaces/memspace_highest_bandwidth.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@
1212
#include <stdlib.h>
1313

1414
#include "base_alloc_global.h"
15-
#include "memory_target_numa.h"
1615
#include "memspace_internal.h"
16+
#include "memtarget_numa.h"
1717
#include "topology.h"
1818
#include "utils_common.h"
1919
#include "utils_concurrency.h"
2020
#include "utils_log.h"
2121

22-
static umf_result_t getBestBandwidthTarget(umf_memory_target_handle_t initiator,
23-
umf_memory_target_handle_t *nodes,
22+
static umf_result_t getBestBandwidthTarget(umf_memtarget_handle_t initiator,
23+
umf_memtarget_handle_t *nodes,
2424
size_t numNodes,
25-
umf_memory_target_handle_t *target) {
25+
umf_memtarget_handle_t *target) {
2626
size_t bestNodeIdx = 0;
2727
size_t bestBandwidth = 0;
2828
for (size_t nodeIdx = 0; nodeIdx < numNodes; nodeIdx++) {
2929
size_t bandwidth = 0;
3030
umf_result_t ret =
31-
umfMemoryTargetGetBandwidth(initiator, nodes[nodeIdx], &bandwidth);
31+
umfMemtargetGetBandwidth(initiator, nodes[nodeIdx], &bandwidth);
3232
if (ret) {
3333
return ret;
3434
}

src/memspaces/memspace_highest_capacity.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#include <stdlib.h>
1212

1313
#include "base_alloc_global.h"
14-
#include "memory_target_numa.h"
1514
#include "memspace_internal.h"
15+
#include "memtarget_numa.h"
1616
#include "topology.h"
1717
#include "utils_concurrency.h"
1818

@@ -34,7 +34,7 @@ umfMemspaceHighestCapacityCreate(umf_memspace_handle_t *hMemspace) {
3434
}
3535

3636
ret = umfMemspaceSortDesc(highCapacityMemspace,
37-
(umfGetPropertyFn)&umfMemoryTargetGetCapacity);
37+
(umfGetPropertyFn)&umfMemtargetGetCapacity);
3838
if (ret != UMF_RESULT_SUCCESS) {
3939
return ret;
4040
}

src/memspaces/memspace_host_all.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#include <stdlib.h>
1212

1313
#include "base_alloc_global.h"
14-
#include "memory_target_numa.h"
1514
#include "memspace_internal.h"
15+
#include "memtarget_numa.h"
1616
#include "topology.h"
1717
#include "utils_concurrency.h"
1818

src/memspaces/memspace_lowest_latency.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@
1212
#include <stdlib.h>
1313

1414
#include "base_alloc_global.h"
15-
#include "memory_target_numa.h"
1615
#include "memspace_internal.h"
16+
#include "memtarget_numa.h"
1717
#include "topology.h"
1818
#include "utils_common.h"
1919
#include "utils_concurrency.h"
2020
#include "utils_log.h"
2121

22-
static umf_result_t getBestLatencyTarget(umf_memory_target_handle_t initiator,
23-
umf_memory_target_handle_t *nodes,
22+
static umf_result_t getBestLatencyTarget(umf_memtarget_handle_t initiator,
23+
umf_memtarget_handle_t *nodes,
2424
size_t numNodes,
25-
umf_memory_target_handle_t *target) {
25+
umf_memtarget_handle_t *target) {
2626
size_t bestNodeIdx = 0;
2727
size_t bestLatency = SIZE_MAX;
2828
for (size_t nodeIdx = 0; nodeIdx < numNodes; nodeIdx++) {
2929
size_t latency = SIZE_MAX;
3030
umf_result_t ret =
31-
umfMemoryTargetGetLatency(initiator, nodes[nodeIdx], &latency);
31+
umfMemtargetGetLatency(initiator, nodes[nodeIdx], &latency);
3232
if (ret) {
3333
return ret;
3434
}

0 commit comments

Comments
 (0)