[compiler-rt] [scudo] Fix the format of getStats() (PR #121608)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 3 14:31:10 PST 2025
https://github.com/ChiaHungDuan created https://github.com/llvm/llvm-project/pull/121608
This is a quick fix for b71c44b9be17dc6295eb733d685b38e797f3c846
"last released" was removed by accident in primary64.h and the update of "NumReleasesAttempted" was missing.
>From 04a6b1a0cd7628943c55ca7f2a4fc245f8cc3c41 Mon Sep 17 00:00:00 2001
From: Chia-hung Duan <chiahungduan at google.com>
Date: Mon, 23 Dec 2024 22:13:39 +0000
Subject: [PATCH] [scudo] Fix the format of getStats()
This is a quick fix for b71c44b9be17dc6295eb733d685b38e797f3c846
"last released" was removed by accident in primary64.h and the update of
"NumReleasesAttempted" was missing.
---
compiler-rt/lib/scudo/standalone/primary64.h | 28 +++++++++++---------
1 file changed, 16 insertions(+), 12 deletions(-)
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
More information about the llvm-commits
mailing list