Skip to content

Commit 32ebea7

Browse files
committed
use umfLevelZeroMemoryProviderResidentDeviceChange instead of ops
1 parent 7de5b15 commit 32ebea7

12 files changed

Lines changed: 62 additions & 90 deletions

include/umf/memory_provider.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -265,17 +265,6 @@ umf_result_t
265265
umfMemoryProviderAllocationMerge(umf_memory_provider_handle_t hProvider,
266266
void *lowPtr, void *highPtr, size_t totalSize);
267267

268-
/// @brief Adds or removes devices on which allocations should be made
269-
/// resident.
270-
/// @param hProvider handle to the memory provider
271-
/// @param device device handle
272-
/// @param isAdding Boolean indicating if peer is to be removed or added
273-
/// @return UMF_RESULT_SUCCESS on success or appropriate error code on
274-
/// failure.
275-
umf_result_t
276-
umfMemoryProviderResidentDeviceChange(umf_memory_provider_handle_t hProvider,
277-
void *device, bool isAdding);
278-
279268
#ifdef __cplusplus
280269
}
281270
#endif

include/umf/memory_provider_ops.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -322,17 +322,6 @@ typedef struct umf_memory_provider_ops_t {
322322
umf_result_t (*ext_get_allocation_properties_size)(
323323
void *provider, umf_memory_property_id_t memory_property_id,
324324
size_t *size);
325-
326-
/// @brief Adds or removes devices on which allocations should be made
327-
/// resident.
328-
/// @param provider handle to the memory provider
329-
/// @param device device handle
330-
/// @param is_adding Boolean indicating if peer is to be removed or added
331-
/// @return UMF_RESULT_SUCCESS on success or appropriate error code on
332-
/// failure.
333-
umf_result_t (*ext_resident_device_change)(void *provider, void *device,
334-
bool is_adding);
335-
336325
} umf_memory_provider_ops_t;
337326

338327
#ifdef __cplusplus

include/umf/providers/provider_level_zero.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,17 @@ umf_result_t umfLevelZeroMemoryProviderParamsSetDeviceOrdinal(
101101
umf_result_t umfLevelZeroMemoryProviderParamsSetName(
102102
umf_level_zero_memory_provider_params_handle_t hParams, const char *name);
103103

104+
/// @brief Adds or removes devices on which allocations should be made
105+
/// resident.
106+
/// @param hProvider handle to the memory provider
107+
/// @param device device handle
108+
/// @param isAdding Boolean indicating if peer is to be removed or added
109+
/// @return UMF_RESULT_SUCCESS on success or appropriate error code on
110+
/// failure.
111+
umf_result_t umfLevelZeroMemoryProviderResidentDeviceChange(
112+
umf_memory_provider_handle_t provider, ze_device_handle_t device,
113+
bool is_adding);
114+
104115
const umf_memory_provider_ops_t *umfLevelZeroMemoryProviderOps(void);
105116

106117
#ifdef __cplusplus

src/libumf.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ EXPORTS
4242
umfLevelZeroMemoryProviderParamsSetDevice
4343
umfLevelZeroMemoryProviderParamsSetMemoryType
4444
umfLevelZeroMemoryProviderParamsSetResidentDevices
45+
umfLevelZeroMemoryProviderResidentDeviceChange
4546
umfMemoryProviderAlloc
4647
umfMemoryProviderAllocationMerge
4748
umfMemoryProviderAllocationSplit
@@ -60,7 +61,6 @@ EXPORTS
6061
umfMemoryProviderPurgeForce
6162
umfMemoryProviderPurgeLazy
6263
umfMemoryProviderPutIPCHandle
63-
umfMemoryProviderResidentDeviceChange
6464
umfMempolicyCreate
6565
umfMempolicyDestroy
6666
umfMempolicySetCustomSplitPartitions

src/libumf.map

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ UMF_1.1 {
151151
umfGetMemoryProperty;
152152
umfGetMemoryPropertySize;
153153
umfJemallocPoolParamsSetName;
154-
umfMemoryProviderResidentDeviceChange;
155154
umfLevelZeroMemoryProviderParamsSetName;
155+
umfLevelZeroMemoryProviderResidentDeviceChange;
156156
umfOsMemoryProviderParamsSetName;
157157
umfPoolTrimMemory;
158158
umfScalablePoolParamsSetName;

src/memory_provider.c

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,6 @@ static umf_result_t umfDefaultGetAllocationPropertiesSize(
154154
return UMF_RESULT_ERROR_NOT_SUPPORTED;
155155
}
156156

157-
static umf_result_t umfDefaultResidentDeviceChange(void *provider, void *device,
158-
bool is_adding) {
159-
(void)provider;
160-
(void)device;
161-
(void)is_adding;
162-
return UMF_RESULT_ERROR_NOT_SUPPORTED;
163-
}
164-
165157
void assignOpsExtDefaults(umf_memory_provider_ops_t *ops) {
166158
if (!ops->ext_purge_lazy) {
167159
ops->ext_purge_lazy = umfDefaultPurgeLazy;
@@ -191,10 +183,6 @@ void assignOpsExtDefaults(umf_memory_provider_ops_t *ops) {
191183
ops->ext_get_allocation_properties_size =
192184
umfDefaultGetAllocationPropertiesSize;
193185
}
194-
195-
if (!ops->ext_resident_device_change) {
196-
ops->ext_resident_device_change = umfDefaultResidentDeviceChange;
197-
}
198186
}
199187

200188
void assignOpsIpcDefaults(umf_memory_provider_ops_t *ops) {
@@ -617,17 +605,4 @@ umf_result_t umfMemoryProviderGetAllocationPropertiesSize(
617605

618606
checkErrorAndSetLastProvider(res, hProvider);
619607
return res;
620-
}
621-
622-
umf_result_t
623-
umfMemoryProviderResidentDeviceChange(umf_memory_provider_handle_t hProvider,
624-
void *device, bool isAdding) {
625-
626-
UMF_CHECK((hProvider != NULL), UMF_RESULT_ERROR_INVALID_ARGUMENT);
627-
628-
umf_result_t res = hProvider->ops.ext_resident_device_change(
629-
hProvider->provider_priv, device, isAdding);
630-
631-
checkErrorAndSetLastProvider(res, hProvider);
632-
return res;
633-
}
608+
}

src/provider/provider_cuda.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,6 @@ static umf_memory_provider_ops_t UMF_CUDA_MEMORY_PROVIDER_OPS = {
829829
cu_memory_provider_get_allocation_properties,
830830
.ext_get_allocation_properties_size =
831831
cu_memory_provider_get_allocation_properties_size,
832-
.ext_resident_device_change = NULL,
833832
};
834833

835834
const umf_memory_provider_ops_t *umfCUDAMemoryProviderOps(void) {

src/provider/provider_level_zero.c

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ static ze_memory_type_t umf2ze_memory_type(umf_usm_memory_type_t memory_type) {
178178

179179
static void init_ze_global_state(void) {
180180

181-
char *lib_name = getenv("UMF_ZE_LOADER_LIB_NAME");
181+
const char *lib_name = getenv("UMF_ZE_LOADER_LIB_NAME");
182182
if (lib_name != NULL && lib_name[0] != '\0') {
183183
LOG_INFO("Using custom ze_loader library name: %s", lib_name);
184184
} else {
@@ -371,7 +371,7 @@ umf_result_t umfLevelZeroMemoryProviderParamsSetResidentDevices(
371371
if (hDevices[first_idx] == hDevices[second_idx]) {
372372
LOG_ERR("resident devices are not unique, idx:%u and "
373373
"idx:%u both point to device:%p",
374-
first_idx, second_idx, hDevices[first_idx]);
374+
first_idx, second_idx, (void *)hDevices[first_idx]);
375375
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
376376
}
377377
}
@@ -527,8 +527,8 @@ static umf_result_t ze_memory_provider_alloc_helper(void *provider, size_t size,
527527
utils_read_unlock(&ze_provider->resident_device_rwlock);
528528
LOG_ERR("making resident allocation %p of size:%lu on device %p "
529529
"failed with 0x%x",
530-
*resultPtr, size, ze_provider->resident_device_handles[i],
531-
ze_result);
530+
*resultPtr, size,
531+
(void *)ze_provider->resident_device_handles[i], ze_result);
532532
umf_result_t free_result =
533533
ze_memory_provider_free(ze_provider, *resultPtr, size);
534534
if (free_result != UMF_RESULT_SUCCESS) {
@@ -539,7 +539,8 @@ static umf_result_t ze_memory_provider_alloc_helper(void *provider, size_t size,
539539
return ze2umf_result(ze_result);
540540
}
541541
LOG_DEBUG("allocation %p of size:%lu made resident on device %p",
542-
*resultPtr, size, ze_provider->resident_device_handles[i]);
542+
*resultPtr, size,
543+
(void *)ze_provider->resident_device_handles[i]);
543544
}
544545
utils_read_unlock(&ze_provider->resident_device_rwlock);
545546

@@ -1034,22 +1035,21 @@ static int ze_memory_provider_resident_device_change_helper(uintptr_t key,
10341035
return 0;
10351036
}
10361037

1037-
static umf_result_t ze_memory_provider_resident_device_change(void *provider,
1038-
void *device,
1039-
bool is_adding) {
1040-
ze_memory_provider_t *ze_provider = provider;
1041-
ze_device_handle_t ze_device = device;
1038+
umf_result_t umfLevelZeroMemoryProviderResidentDeviceChange(
1039+
umf_memory_provider_handle_t provider, ze_device_handle_t device,
1040+
bool is_adding) {
1041+
ze_memory_provider_t *ze_provider = umfMemoryProviderGetPriv(provider);
10421042

10431043
LOG_INFO("%s resident device %p, src_provider:%p, existing peers "
10441044
"count:%d",
1045-
(is_adding ? "adding" : "removing"), ze_device, provider,
1046-
ze_provider->resident_device_count);
1045+
(is_adding ? "adding" : "removing"), (void *)device,
1046+
(void *)provider, ze_provider->resident_device_count);
10471047

10481048
uint32_t existing_peer_index = 0;
10491049
utils_write_lock(&ze_provider->resident_device_rwlock);
10501050
while (existing_peer_index < ze_provider->resident_device_count &&
10511051
ze_provider->resident_device_handles[existing_peer_index] !=
1052-
ze_device) {
1052+
device) {
10531053
++existing_peer_index;
10541054
}
10551055

@@ -1060,7 +1060,7 @@ static umf_result_t ze_memory_provider_resident_device_change(void *provider,
10601060
utils_write_unlock(&ze_provider->resident_device_rwlock);
10611061
LOG_ERR("trying to remove resident device %p but the device "
10621062
"is not a peer of provider:%p currently",
1063-
ze_device, provider);
1063+
(void *)device, (void *)provider);
10641064
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
10651065
}
10661066
// adding case
@@ -1086,7 +1086,7 @@ static umf_result_t ze_memory_provider_resident_device_change(void *provider,
10861086
ze_provider->resident_device_handles = new_handles;
10871087
ze_provider->resident_device_capacity = new_capacity;
10881088
}
1089-
ze_provider->resident_device_handles[existing_peer_index] = ze_device;
1089+
ze_provider->resident_device_handles[existing_peer_index] = device;
10901090
++ze_provider->resident_device_count;
10911091

10921092
} else {
@@ -1095,7 +1095,7 @@ static umf_result_t ze_memory_provider_resident_device_change(void *provider,
10951095
utils_write_unlock(&ze_provider->resident_device_rwlock);
10961096
LOG_ERR("trying to add resident device:%p but the device is "
10971097
"already a peer of provider:%p",
1098-
ze_device, provider);
1098+
(void *)device, (void *)provider);
10991099
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
11001100
}
11011101
// removing case, put last in place of removed one
@@ -1108,7 +1108,7 @@ static umf_result_t ze_memory_provider_resident_device_change(void *provider,
11081108

11091109
struct ze_memory_provider_resident_device_change_data privData = {
11101110
.is_adding = is_adding,
1111-
.peer_device = ze_device,
1111+
.peer_device = device,
11121112
.source_memory_provider = ze_provider,
11131113
.success_changes = 0,
11141114
.failed_changes = 0,
@@ -1162,7 +1162,6 @@ static umf_memory_provider_ops_t UMF_LEVEL_ZERO_MEMORY_PROVIDER_OPS = {
11621162
ze_memory_provider_get_allocation_properties,
11631163
.ext_get_allocation_properties_size =
11641164
ze_memory_provider_get_allocation_properties_size,
1165-
.ext_resident_device_change = ze_memory_provider_resident_device_change,
11661165
};
11671166

11681167
const umf_memory_provider_ops_t *umfLevelZeroMemoryProviderOps(void) {
@@ -1258,4 +1257,14 @@ const umf_memory_provider_ops_t *umfLevelZeroMemoryProviderOps(void) {
12581257
return NULL;
12591258
}
12601259

1260+
umf_result_t umfLevelZeroMemoryProviderResidentDeviceChange(
1261+
umf_memory_provider_handle_t provider, ze_device_handle_t device,
1262+
bool is_adding) {
1263+
(void)provider(void) device,
1264+
(void)is_adding LOG_ERR(
1265+
"L0 memory provider is disabled! (UMF_BUILD_LEVEL_ZERO_PROVIDER is "
1266+
"OFF)");
1267+
return UMF_RESULT_ERROR_NOT_SUPPORTED;
1268+
}
1269+
12611270
#endif // !UMF_BUILD_LEVEL_ZERO_PROVIDER

src/provider/provider_tracking.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1358,7 +1358,6 @@ umf_memory_provider_ops_t UMF_TRACKING_MEMORY_PROVIDER_OPS = {
13581358
.ext_ctl = NULL,
13591359
.ext_get_allocation_properties = trackingGetAllocationProperties,
13601360
.ext_get_allocation_properties_size = trackingGetAllocationPropertiesSize,
1361-
.ext_resident_device_change = NULL,
13621361
};
13631362

13641363
static void free_ipc_cache_value(void *unused, void *ipc_cache_value) {

test/common/provider_null.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,6 @@ static umf_result_t nullGetAllocationPropertiesSize(
162162
return UMF_RESULT_SUCCESS;
163163
}
164164

165-
static umf_result_t nullResidentDeviceChange(void *provider, void *device,
166-
bool is_adding) {
167-
(void)provider;
168-
(void)device;
169-
(void)is_adding;
170-
return UMF_RESULT_SUCCESS;
171-
}
172-
173165
umf_memory_provider_ops_t UMF_NULL_PROVIDER_OPS = {
174166
.version = UMF_PROVIDER_OPS_VERSION_CURRENT,
175167
.initialize = nullInitialize,
@@ -191,5 +183,4 @@ umf_memory_provider_ops_t UMF_NULL_PROVIDER_OPS = {
191183
.ext_close_ipc_handle = nullCloseIpcHandle,
192184
.ext_get_allocation_properties = nullGetAllocationProperties,
193185
.ext_get_allocation_properties_size = nullGetAllocationPropertiesSize,
194-
.ext_resident_device_change = nullResidentDeviceChange,
195186
};

0 commit comments

Comments
 (0)