Skip to content

Commit 2dd3c11

Browse files
Do not copy ze_ipc_mem_handle_t in internal functions of NEO
The size of this type is at least 64 bytes due to ZE_MAX_IPC_HANDLE_SIZE. This change introduces usage of const reference instead of copying. Signed-off-by: Patryk Wrobel <[email protected]>
1 parent 9059799 commit 2dd3c11

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

level_zero/core/source/context/context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ struct Context : _ze_context_handle_t {
9191
void **pptr) = 0;
9292

9393
virtual ze_result_t openIpcMemHandle(ze_device_handle_t hDevice,
94-
ze_ipc_mem_handle_t handle,
94+
const ze_ipc_mem_handle_t &handle,
9595
ze_ipc_memory_flags_t flags,
9696
void **ptr) = 0;
9797
virtual ze_result_t getMemAllocProperties(const void *ptr,

level_zero/core/source/context/context_imp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,13 +485,13 @@ ze_result_t ContextImp::getIpcMemHandles(const void *ptr,
485485
}
486486

487487
ze_result_t ContextImp::openIpcMemHandle(ze_device_handle_t hDevice,
488-
ze_ipc_mem_handle_t pIpcHandle,
488+
const ze_ipc_mem_handle_t &pIpcHandle,
489489
ze_ipc_memory_flags_t flags,
490490
void **ptr) {
491491
uint64_t handle = 0u;
492492
memcpy_s(&handle,
493493
sizeof(handle),
494-
reinterpret_cast<void *>(pIpcHandle.data),
494+
pIpcHandle.data,
495495
sizeof(handle));
496496

497497
*ptr = getMemHandlePtr(hDevice, handle, flags);

level_zero/core/source/context/context_imp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ struct ContextImp : Context {
5858
ze_result_t getIpcMemHandle(const void *ptr,
5959
ze_ipc_mem_handle_t *pIpcHandle) override;
6060
ze_result_t openIpcMemHandle(ze_device_handle_t hDevice,
61-
ze_ipc_mem_handle_t handle,
61+
const ze_ipc_mem_handle_t &handle,
6262
ze_ipc_memory_flags_t flags,
6363
void **ptr) override;
6464

level_zero/core/test/unit_tests/mocks/mock_context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ struct Mock<Context> : public Context {
4040
ADDMETHOD_NOBASE(getMemAddressRange, ze_result_t, ZE_RESULT_SUCCESS, (const void *ptr, void **pBase, size_t *pSize));
4141
ADDMETHOD_NOBASE(getIpcMemHandle, ze_result_t, ZE_RESULT_SUCCESS, (const void *ptr, ze_ipc_mem_handle_t *pIpcHandle));
4242
ADDMETHOD_NOBASE(closeIpcMemHandle, ze_result_t, ZE_RESULT_SUCCESS, (const void *ptr));
43-
ADDMETHOD_NOBASE(openIpcMemHandle, ze_result_t, ZE_RESULT_SUCCESS, (ze_device_handle_t hDevice, ze_ipc_mem_handle_t handle, ze_ipc_memory_flags_t flags, void **ptr));
43+
ADDMETHOD_NOBASE(openIpcMemHandle, ze_result_t, ZE_RESULT_SUCCESS, (ze_device_handle_t hDevice, const ze_ipc_mem_handle_t &handle, ze_ipc_memory_flags_t flags, void **ptr));
4444
ADDMETHOD_NOBASE(createModule, ze_result_t, ZE_RESULT_SUCCESS, (ze_device_handle_t hDevice, const ze_module_desc_t *desc, ze_module_handle_t *phModule, ze_module_build_log_handle_t *phBuildLog));
4545
ADDMETHOD_NOBASE(createSampler, ze_result_t, ZE_RESULT_SUCCESS, (ze_device_handle_t hDevice, const ze_sampler_desc_t *pDesc, ze_sampler_handle_t *phSampler));
4646
ADDMETHOD_NOBASE(createCommandQueue, ze_result_t, ZE_RESULT_SUCCESS, (ze_device_handle_t hDevice, const ze_command_queue_desc_t *desc, ze_command_queue_handle_t *commandQueue));

0 commit comments

Comments
 (0)