Skip to content

Commit df7650b

Browse files
committed
Fix handling resident_device_handles in L0 provider
handles were being ignored in the initialize function.
1 parent 36beed3 commit df7650b

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

benchmark/ubench.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ int create_level_zero_params(level_zero_memory_provider_params_t *params) {
430430
UBENCH_EX(ipc, disjoint_pool_with_level_zero_provider) {
431431
const size_t BUFFER_SIZE = 100;
432432
const size_t N_BUFFERS = 1000;
433-
level_zero_memory_provider_params_t level_zero_params;
433+
level_zero_memory_provider_params_t level_zero_params = {0};
434434

435435
int ret = create_level_zero_params(&level_zero_params);
436436
if (ret != 0) {

examples/ipc_level_zero/ipc_level_zero.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ int create_level_zero_pool(ze_context_handle_t context,
2020
ze_device_handle_t device,
2121
umf_memory_pool_handle_t *pool) {
2222
// setup params
23-
level_zero_memory_provider_params_t params;
23+
level_zero_memory_provider_params_t params = {0};
2424
params.level_zero_context_handle = context;
2525
params.level_zero_device_handle = device;
2626
params.memory_type = UMF_MEMORY_TYPE_DEVICE;

examples/level_zero_shared_memory/level_zero_shared_memory.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ int main(void) {
4949

5050
// Setup parameters for the Level Zero memory provider. It will be used for
5151
// allocating memory from Level Zero devices.
52-
level_zero_memory_provider_params_t ze_memory_provider_params;
52+
level_zero_memory_provider_params_t ze_memory_provider_params = {0};
5353
ze_memory_provider_params.level_zero_context_handle = hContext;
5454
ze_memory_provider_params.level_zero_device_handle = hDevice;
5555
// Set the memory type to shared to allow the memory to be accessed on both

src/provider/provider_level_zero.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,25 @@ static umf_result_t ze_memory_provider_initialize(void *params,
177177
sizeof(ze_provider->device_properties));
178178
}
179179

180+
if (ze_params->resident_device_count) {
181+
ze_provider->resident_device_handles = umf_ba_global_alloc(
182+
sizeof(ze_device_handle_t) * ze_params->resident_device_count);
183+
if (!ze_provider->resident_device_handles) {
184+
umf_ba_global_free(ze_provider);
185+
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
186+
}
187+
188+
ze_provider->resident_device_count = ze_params->resident_device_count;
189+
190+
for (uint32_t i = 0; i < ze_provider->resident_device_count; i++) {
191+
ze_provider->resident_device_handles[i] =
192+
ze_params->resident_device_handles[i];
193+
}
194+
} else {
195+
ze_provider->resident_device_handles = NULL;
196+
ze_provider->resident_device_count = 0;
197+
}
198+
180199
*provider = ze_provider;
181200

182201
return UMF_RESULT_SUCCESS;
@@ -188,6 +207,9 @@ static void ze_memory_provider_finalize(void *provider) {
188207
return;
189208
}
190209

210+
ze_memory_provider_t *ze_provider = (ze_memory_provider_t *)provider;
211+
umf_ba_global_free(ze_provider->resident_device_handles);
212+
191213
umf_ba_global_free(provider);
192214
}
193215

0 commit comments

Comments
 (0)