Insert scratch memory into scratch cache on full profile systems.

Scratch cache was not updated for IOMMUv2 systems previously.
This both negates the cache and causes segfault during scratch
release.

Change-Id: I71e81d6b642d65ca135868ff7225ea173529d458


[ROCm/ROCR-Runtime commit: 191664cd20]
이 커밋은 다음에 포함됨:
Sean Keely가 2021-03-03 21:30:16 -05:00를 커밋했습니다
1 부모 519b7d4642
커밋 e2aca270b7
1 파일이 변경됨
+7 -9
+7 -9
파일 보기
@@ -1136,15 +1136,13 @@ void GpuAgent::AcquireQueueScratch(ScratchInfo& scratch) {
assert(((!scratch.large) | use_reclaim) && "Large scratch used with reclaim disabled.");
if (scratch.queue_base != nullptr) {
if (profile_ == HSA_PROFILE_FULL) return;
if (profile_ == HSA_PROFILE_BASE) {
HSAuint64 alternate_va;
if (hsaKmtMapMemoryToGPU(scratch.queue_base, scratch.size, &alternate_va) ==
HSAKMT_STATUS_SUCCESS) {
if (scratch.large) scratch_used_large_ += scratch.size;
scratch_cache_.insert(scratch);
return;
}
HSAuint64 alternate_va;
if ((profile_ == HSA_PROFILE_FULL) ||
(hsaKmtMapMemoryToGPU(scratch.queue_base, scratch.size, &alternate_va) ==
HSAKMT_STATUS_SUCCESS)) {
if (scratch.large) scratch_used_large_ += scratch.size;
scratch_cache_.insert(scratch);
return;
}
}