Skip to content

Commit 1d7e9ef

Browse files
authored
[DevTSAN] Fix missing intercepted API and release local shadow (#18942)
1 parent 000fba1 commit 1d7e9ef

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

unified-runtime/source/loader/layers/sanitizer/tsan/tsan_ddi.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,6 +1326,8 @@ ur_result_t urGetKernelProcAddrTable(
13261326
}
13271327

13281328
pDdiTable->pfnCreate = ur_sanitizer_layer::tsan::urKernelCreate;
1329+
pDdiTable->pfnCreateWithNativeHandle =
1330+
ur_sanitizer_layer::tsan::urKernelCreateWithNativeHandle;
13291331
pDdiTable->pfnRetain = ur_sanitizer_layer::tsan::urKernelRetain;
13301332
pDdiTable->pfnRelease = ur_sanitizer_layer::tsan::urKernelRelease;
13311333
pDdiTable->pfnSetArgValue = ur_sanitizer_layer::tsan::urKernelSetArgValue;

unified-runtime/source/loader/layers/sanitizer/tsan/tsan_shadow.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ ur_result_t ShadowMemoryGPU::Destroy() {
106106
return UR_RESULT_SUCCESS;
107107
}
108108

109+
if (LocalShadowOffset != 0) {
110+
UR_CALL(getContext()->urDdiTable.USM.pfnFree(Context,
111+
(void *)LocalShadowOffset));
112+
LocalShadowOffset = 0;
113+
}
114+
109115
const size_t PageSize = GetVirtualMemGranularity(Context, Device);
110116
for (auto [MappedPtr, PhysicalMem] : VirtualMemMaps) {
111117
UR_CALL(getContext()->urDdiTable.VirtualMem.pfnUnmap(

0 commit comments

Comments
 (0)