@@ -44,34 +44,6 @@ ur_result_t getProviderNativeError(const char *providerName,
4444usm::DisjointPoolAllConfigs DisjointPoolConfigInstance =
4545 InitializeDisjointPoolConfig ();
4646
47- ur_result_t umf2urResult (umf_result_t umfResult) {
48- if (umfResult == UMF_RESULT_SUCCESS )
49- return UR_RESULT_SUCCESS ;
50-
51- switch (umfResult) {
52- case UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY :
53- return UR_RESULT_ERROR_OUT_OF_HOST_MEMORY ;
54- case UMF_RESULT_ERROR_MEMORY_PROVIDER_SPECIFIC : {
55- auto hProvider = umfGetLastFailedMemoryProvider ();
56- if (hProvider == nullptr )
57- return UR_RESULT_ERROR_UNKNOWN ;
58-
59- ur_result_t Err = UR_RESULT_ERROR_UNKNOWN ;
60- umfMemoryProviderGetLastNativeError (hProvider, nullptr ,
61- reinterpret_cast <int32_t *>(&Err));
62- return Err;
63- }
64- case UMF_RESULT_ERROR_INVALID_ARGUMENT :
65- return UR_RESULT_ERROR_INVALID_ARGUMENT ;
66- case UMF_RESULT_ERROR_INVALID_ALIGNMENT :
67- return UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT ;
68- case UMF_RESULT_ERROR_NOT_SUPPORTED :
69- return UR_RESULT_ERROR_UNSUPPORTED_FEATURE ;
70- default :
71- return UR_RESULT_ERROR_UNKNOWN ;
72- };
73- }
74-
7547usm::DisjointPoolAllConfigs InitializeDisjointPoolConfig () {
7648 const char *PoolUrTraceVal = std::getenv (" UR_L0_USM_ALLOCATOR_TRACE" );
7749 const char *PoolPiTraceVal =
@@ -472,8 +444,9 @@ ur_result_t urUSMGetMemAllocInfo(
472444 return ReturnValue (Size);
473445 }
474446 case UR_USM_ALLOC_INFO_POOL : {
475- auto UMFPool = umfPoolByPtr (Ptr);
476- if (!UMFPool) {
447+ umf_memory_pool_handle_t UMFPool = nullptr ;
448+ auto umfRet = umfPoolByPtr (Ptr, &UMFPool);
449+ if (umfRet != UMF_RESULT_SUCCESS || !UMFPool) {
477450 return UR_RESULT_ERROR_INVALID_VALUE ;
478451 }
479452
@@ -513,7 +486,7 @@ ur_result_t urUSMPoolCreate(
513486 } catch (const UsmAllocationException &Ex) {
514487 return Ex.getError ();
515488 } catch (umf_result_t e) {
516- return umf2urResult (e);
489+ return umf:: umf2urResult (e);
517490 } catch (...) {
518491 return UR_RESULT_ERROR_UNKNOWN ;
519492 }
@@ -808,15 +781,16 @@ typedef struct ze_ipc_data_t {
808781 ze_ipc_mem_handle_t zeHandle;
809782} ze_ipc_data_t ;
810783
811- umf_result_t L0MemoryProvider::get_ipc_handle_size (size_t *Size) {
784+ umf_result_t L0MemoryProvider::ext_get_ipc_handle_size (size_t *Size) {
812785 UR_ASSERT (Size, UMF_RESULT_ERROR_INVALID_ARGUMENT );
813786 *Size = sizeof (ze_ipc_data_t );
814787
815788 return UMF_RESULT_SUCCESS ;
816789}
817790
818- umf_result_t L0MemoryProvider::get_ipc_handle (const void *Ptr, size_t /* Size*/ ,
819- void *IpcData) {
791+ umf_result_t L0MemoryProvider::ext_get_ipc_handle (const void *Ptr,
792+ size_t /* Size*/ ,
793+ void *IpcData) {
820794
821795 UR_ASSERT (Ptr && IpcData, UMF_RESULT_ERROR_INVALID_ARGUMENT );
822796 ze_ipc_data_t *zeIpcData = (ze_ipc_data_t *)IpcData;
@@ -831,7 +805,7 @@ umf_result_t L0MemoryProvider::get_ipc_handle(const void *Ptr, size_t /*Size*/,
831805 return UMF_RESULT_SUCCESS ;
832806}
833807
834- umf_result_t L0MemoryProvider::put_ipc_handle (void *IpcData) {
808+ umf_result_t L0MemoryProvider::ext_put_ipc_handle (void *IpcData) {
835809 UR_ASSERT (IpcData, UMF_RESULT_ERROR_INVALID_ARGUMENT );
836810
837811 // zeMemPutIpcHandle was introduced in Level Zero 1.6. Before Level Zero 1.6,
@@ -849,7 +823,7 @@ umf_result_t L0MemoryProvider::put_ipc_handle(void *IpcData) {
849823 return UMF_RESULT_SUCCESS ;
850824}
851825
852- umf_result_t L0MemoryProvider::open_ipc_handle (void *IpcData, void **Ptr) {
826+ umf_result_t L0MemoryProvider::ext_open_ipc_handle (void *IpcData, void **Ptr) {
853827 UR_ASSERT (IpcData && Ptr, UMF_RESULT_ERROR_INVALID_ARGUMENT );
854828 ze_ipc_data_t *zeIpcData = (ze_ipc_data_t *)IpcData;
855829
@@ -880,7 +854,8 @@ umf_result_t L0MemoryProvider::open_ipc_handle(void *IpcData, void **Ptr) {
880854 return UMF_RESULT_SUCCESS ;
881855}
882856
883- umf_result_t L0MemoryProvider::close_ipc_handle (void *Ptr, size_t /* Size*/ ) {
857+ umf_result_t L0MemoryProvider::ext_close_ipc_handle (void *Ptr,
858+ size_t /* Size*/ ) {
884859
885860 UR_ASSERT (Ptr, UMF_RESULT_ERROR_INVALID_ARGUMENT );
886861 auto Ret = ZE_CALL_NOCHECK (zeMemCloseIpcHandle, (Context->ZeContext , Ptr));
@@ -1307,15 +1282,16 @@ ur_result_t USMFreeHelper(ur_context_handle_t Context, void *Ptr,
13071282 Context->MemAllocs .erase (It);
13081283 }
13091284
1310- auto hPool = umfPoolByPtr (Ptr);
1311- if (!hPool) {
1285+ umf_memory_pool_handle_t hPool = nullptr ;
1286+ auto umfRet = umfPoolByPtr (Ptr, &hPool);
1287+ if (umfRet != UMF_RESULT_SUCCESS || !hPool) {
13121288 if (IndirectAccessTrackingEnabled)
13131289 UR_CALL (ContextReleaseHelper (Context));
13141290 return UR_RESULT_ERROR_INVALID_MEM_OBJECT ;
13151291 }
13161292
1317- auto umfRet = umfPoolFree (hPool, Ptr);
1293+ umfRet = umfPoolFree (hPool, Ptr);
13181294 if (IndirectAccessTrackingEnabled)
13191295 UR_CALL (ContextReleaseHelper (Context));
1320- return umf2urResult (umfRet);
1296+ return umf:: umf2urResult (umfRet);
13211297}
0 commit comments