[compiler-rt] [scudo] Fix the format of getStats() (PR #121608)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 3 14:31:45 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: None (ChiaHungDuan)
<details>
<summary>Changes</summary>
This is a quick fix for b71c44b9be17dc6295eb733d685b38e797f3c846
"last released" was removed by accident in primary64.h and the update of "NumReleasesAttempted" was missing.
---
Full diff: https://github.com/llvm/llvm-project/pull/121608.diff
1 Files Affected:
- (modified) compiler-rt/lib/scudo/standalone/primary64.h (+16-12)
``````````diff
diff --git a/compiler-rt/lib/scudo/standalone/primary64.h b/compiler-rt/lib/scudo/standalone/primary64.h
index 2b520ceb331488..e7da849c339bfe 100644
--- a/compiler-rt/lib/scudo/standalone/primary64.h
+++ b/compiler-rt/lib/scudo/standalone/primary64.h
@@ -1141,18 +1141,18 @@ template <typename Config> class SizeClassAllocator64 {
BytesInFreeList - Region->ReleaseInfo.BytesInFreeListAtLastCheckpoint;
}
const uptr TotalChunks = Region->MemMapInfo.AllocatedUser / BlockSize;
- Str->append(
- "%s %02zu (%6zu): mapped: %6zuK popped: %7zu pushed: %7zu "
- "inuse: %6zu total: %6zu releases: %6zu last "
- "releases attempted: %6zuK latest pushed bytes: %6zuK region: 0x%zx "
- "(0x%zx)\n",
- Region->Exhausted ? "E" : " ", ClassId, getSizeByClassId(ClassId),
- Region->MemMapInfo.MappedUser >> 10, Region->FreeListInfo.PoppedBlocks,
- Region->FreeListInfo.PushedBlocks, InUseBlocks, TotalChunks,
- Region->ReleaseInfo.NumReleasesAttempted,
- Region->ReleaseInfo.LastReleasedBytes >> 10,
- RegionPushedBytesDelta >> 10, Region->RegionBeg,
- getRegionBaseByClassId(ClassId));
+ Str->append("%s %02zu (%6zu): mapped: %6zuK popped: %7zu pushed: %7zu "
+ "inuse: %6zu total: %6zu releases attempted: %6zu last "
+ "released: %6zuK latest pushed bytes: %6zuK region: 0x%zx "
+ "(0x%zx)\n",
+ Region->Exhausted ? "E" : " ", ClassId,
+ getSizeByClassId(ClassId), Region->MemMapInfo.MappedUser >> 10,
+ Region->FreeListInfo.PoppedBlocks,
+ Region->FreeListInfo.PushedBlocks, InUseBlocks, TotalChunks,
+ Region->ReleaseInfo.NumReleasesAttempted,
+ Region->ReleaseInfo.LastReleasedBytes >> 10,
+ RegionPushedBytesDelta >> 10, Region->RegionBeg,
+ getRegionBaseByClassId(ClassId));
}
void getRegionFragmentationInfo(RegionInfo *Region, uptr ClassId,
@@ -1297,6 +1297,10 @@ template <typename Config> class SizeClassAllocator64 {
return 0;
}
+ // The following steps contribute to the majority time spent in page
+ // releasing thus we increment the counter here.
+ ++Region->ReleaseInfo.NumReleasesAttempted;
+
// Note that we have extracted the `GroupsToRelease` from region freelist.
// It's safe to let pushBlocks()/popBlocks() access the remaining region
// freelist. In the steps 3 and 4, we will temporarily release the FLLock
``````````
</details>
https://github.com/llvm/llvm-project/pull/121608
More information about the llvm-commits
mailing list