Do not discard fragment allocator blocks multiple times.

discardBlock may be called multiple times on the same block.
We must not discard the block multiple times or we will corrupt
in-use memory accounting.

Change-Id: Ife9f3162785965a795dcf81887d4d447cc096e62


[ROCm/ROCR-Runtime commit: b9a0c1d313]
이 커밋은 다음에 포함됨:
Sean Keely가 2022-02-10 18:39:46 -06:00를 커밋했습니다
1 부모 305b7394b3
커밋 523e6e883a
1 파일이 변경됨
+3
+3
파일 보기
@@ -300,6 +300,9 @@ template <typename Allocator> class SimpleHeap {
(frag_map.rbegin()->first + frag_map.rbegin()->second.size <= base))
return false;
// Is block already discarded?
if (frag_map.begin()->second.discard) return true;
// Mark all fragments for discard and compute block size. Removes freelist records for all
// fragments in the block.
size_t size = 0;