From 389d21481f293963ca07590fb87a1e68d15bde0b Mon Sep 17 00:00:00 2001 From: Saleel Kudchadker Date: Tue, 25 Feb 2020 00:09:49 -0800 Subject: [PATCH] Use the context variant of getNullStream Do not create a new queue to call finish in hipFree if none was created earlier elsewhere. Change-Id: I87bb191e6b186ddbe607ab29d11e3ae5bc2ac8e6 [ROCm/clr commit: 1ccaea7ca8459018319bd70baa2440fd17b1dd25] --- projects/clr/hipamd/vdi/hip_context.cpp | 1 + projects/clr/hipamd/vdi/hip_memory.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/projects/clr/hipamd/vdi/hip_context.cpp b/projects/clr/hipamd/vdi/hip_context.cpp index ebc6f88ee3..f28ca48239 100644 --- a/projects/clr/hipamd/vdi/hip_context.cpp +++ b/projects/clr/hipamd/vdi/hip_context.cpp @@ -103,6 +103,7 @@ amd::HostQueue* getNullStream(Device& dev) { } return stream->second; } + amd::HostQueue* getNullStream(amd::Context& ctx) { for (auto& it : g_nullStreams) { if (it.first->asContext() == &ctx) { diff --git a/projects/clr/hipamd/vdi/hip_memory.cpp b/projects/clr/hipamd/vdi/hip_memory.cpp index 58c27cb89d..77d48a4368 100644 --- a/projects/clr/hipamd/vdi/hip_memory.cpp +++ b/projects/clr/hipamd/vdi/hip_memory.cpp @@ -224,8 +224,11 @@ hipError_t hipFree(void* ptr) { } if (amd::SvmBuffer::malloced(ptr)) { hip::syncStreams(); - for (size_t i=0; ifinish(); + for (auto& dev : g_devices) { + amd::HostQueue* queue = hip::getNullStream(*dev->asContext()); + if (queue != nullptr) { + queue->finish(); + } } amd::SvmBuffer::free(*hip::getCurrentDevice()->asContext(), ptr); HIP_RETURN(hipSuccess);