Skip to content

Commit 0afd6cd

Browse files
committed
wip
1 parent 131d664 commit 0afd6cd

File tree

5 files changed

+21
-8
lines changed

5 files changed

+21
-8
lines changed

source/loader/layers/sanitizer/asan/asan_shadow.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ ur_result_t ShadowMemoryGPU::EnqueuePoisonShadow(ur_queue_handle_t Queue,
223223
(void *)(MappedPtr + PageSize - 1));
224224

225225
// Initialize to zero
226-
URes = EnqueueUSMSet(Queue, (void *)MappedPtr, 0,
226+
URes = EnqueueUSMBlockingSet(Queue, (void *)MappedPtr, 0,
227227
PageSize);
228228
if (URes != UR_RESULT_SUCCESS) {
229229
getContext()->logger.error("EnqueueUSMBlockingSet(): {}",
@@ -236,7 +236,7 @@ ur_result_t ShadowMemoryGPU::EnqueuePoisonShadow(ur_queue_handle_t Queue,
236236
}
237237
}
238238

239-
auto URes = EnqueueUSMSet(Queue, (void *)ShadowBegin, Value,
239+
auto URes = EnqueueUSMBlockingSet(Queue, (void *)ShadowBegin, Value,
240240
ShadowEnd - ShadowBegin + 1);
241241
getContext()->logger.debug(
242242
"EnqueuePoisonShadow (addr={}, count={}, value={}): {}",
@@ -272,7 +272,7 @@ ur_result_t ShadowMemoryGPU::AllocLocalShadow(ur_queue_handle_t Queue,
272272
(void **)&LocalShadowOffset));
273273

274274
// Initialize shadow memory
275-
ur_result_t URes = EnqueueUSMSet(
275+
ur_result_t URes = EnqueueUSMBlockingSet(
276276
Queue, (void *)LocalShadowOffset, 0, RequiredShadowSize);
277277
if (URes != UR_RESULT_SUCCESS) {
278278
UR_CALL(getContext()->urDdiTable.USM.pfnFree(
@@ -312,7 +312,7 @@ ur_result_t ShadowMemoryGPU::AllocPrivateShadow(ur_queue_handle_t Queue,
312312
(void **)&PrivateShadowOffset));
313313

314314
// Initialize shadow memory
315-
ur_result_t URes = EnqueueUSMSet(
315+
ur_result_t URes = EnqueueUSMBlockingSet(
316316
Queue, (void *)PrivateShadowOffset, 0, RequiredShadowSize);
317317
if (URes != UR_RESULT_SUCCESS) {
318318
UR_CALL(getContext()->urDdiTable.USM.pfnFree(

source/loader/layers/sanitizer/msan/msan_interceptor.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,19 @@ ur_result_t MsanInterceptor::allocateMemory(ur_context_handle_t Context,
8282
return UR_RESULT_SUCCESS;
8383
}
8484

85+
ur_result_t MsanInterceptor::releaseMemory(ur_context_handle_t Context,
86+
void *Ptr) {
87+
auto Addr = reinterpret_cast<uptr>(Ptr);
88+
auto AddrInfoItOp = findAllocInfoByAddress(Addr);
89+
90+
if (AddrInfoItOp) {
91+
std::scoped_lock<ur_shared_mutex> Guard(m_AllocationMapMutex);
92+
m_AllocationMap.erase(*AddrInfoItOp);
93+
}
94+
95+
return getContext()->urDdiTable.USM.pfnFree(Context, Ptr);
96+
}
97+
8598
ur_result_t MsanInterceptor::preLaunchKernel(ur_kernel_handle_t Kernel,
8699
ur_queue_handle_t Queue,
87100
USMLaunchInfo &LaunchInfo) {

source/loader/layers/sanitizer/msan/msan_shadow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ ur_result_t MsanShadowMemoryGPU::EnqueueMappingShadow(
249249
(void *)(MappedPtr + PageSize - 1));
250250

251251
// Initialize to zero
252-
URes = EnqueueUSMSet(Queue, (void *)MappedPtr, 0, PageSize,
252+
URes = EnqueueUSMBlockingSet(Queue, (void *)MappedPtr, 0, PageSize,
253253
EventWaitList.size(), EventWaitList.data(),
254254
OutEvent);
255255
if (URes != UR_RESULT_SUCCESS) {
@@ -296,7 +296,7 @@ ur_result_t MsanShadowMemoryGPU::EnqueuePoisonShadow(
296296
const uptr ShadowEnd = MemToShadow(Ptr + Size - 1);
297297
assert(ShadowBegin <= ShadowEnd);
298298

299-
auto Result = EnqueueUSMSet(Queue, (void *)ShadowBegin, Value,
299+
auto Result = EnqueueUSMBlockingSet(Queue, (void *)ShadowBegin, Value,
300300
ShadowEnd - ShadowBegin + 1, Events.size(),
301301
Events.data(), OutEvent);
302302

source/loader/layers/sanitizer/sanitizer_common/sanitizer_utils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ size_t GetVirtualMemGranularity(ur_context_handle_t Context,
243243
return Size;
244244
}
245245

246-
ur_result_t EnqueueUSMSet(ur_queue_handle_t Queue, void *Ptr, char Value,
246+
ur_result_t EnqueueUSMBlockingSet(ur_queue_handle_t Queue, void *Ptr, char Value,
247247
size_t Size, uint32_t NumEvents,
248248
const ur_event_handle_t *EventWaitList,
249249
ur_event_handle_t *OutEvent) {

source/loader/layers/sanitizer/sanitizer_common/sanitizer_utils.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ size_t GetVirtualMemGranularity(ur_context_handle_t Context,
5959
ur_device_handle_t Device);
6060

6161
ur_result_t
62-
EnqueueUSMSet(ur_queue_handle_t Queue, void *Ptr, char Value,
62+
EnqueueUSMBlockingSet(ur_queue_handle_t Queue, void *Ptr, char Value,
6363
size_t Size, uint32_t NumEvents = 0,
6464
const ur_event_handle_t *EventWaitList = nullptr,
6565
ur_event_handle_t *OutEvent = nullptr);

0 commit comments

Comments
 (0)