@@ -1146,17 +1146,27 @@ void SizeClassAllocator64<Config>::getStats(ScopedString *Str, uptr ClassId,
11461146 BytesInFreeList - Region->ReleaseInfo .BytesInFreeListAtLastCheckpoint ;
11471147 }
11481148 const uptr TotalChunks = Region->MemMapInfo .AllocatedUser / BlockSize;
1149+ const s32 IntervalMs = atomic_load_relaxed (&ReleaseToOsIntervalMs);
1150+ const u64 IntervalNs = static_cast <u64 >(IntervalMs) * 1000000 ;
1151+ const u64 CurTimeNs = getMonotonicTime ();
1152+ const u64 DiffSinceLastReleaseNs =
1153+ CurTimeNs - Region->ReleaseInfo .LastReleaseAtNs ;
1154+
11491155 Str->append (
11501156 " %s %02zu (%6zu): mapped: %6zuK popped: %7zu pushed: %7zu "
11511157 " inuse: %6zu total: %6zu releases attempted: %6zu last "
11521158 " released: %6zuK latest pushed bytes: %6zuK region: 0x%zx "
1153- " (0x%zx)\n " ,
1159+ " (0x%zx) " ,
11541160 Region->Exhausted ? " E" : " " , ClassId, getSizeByClassId (ClassId),
11551161 Region->MemMapInfo .MappedUser >> 10 , Region->FreeListInfo .PoppedBlocks ,
11561162 Region->FreeListInfo .PushedBlocks , InUseBlocks, TotalChunks,
11571163 Region->ReleaseInfo .NumReleasesAttempted ,
11581164 Region->ReleaseInfo .LastReleasedBytes >> 10 , RegionPushedBytesDelta >> 10 ,
11591165 Region->RegionBeg , getRegionBaseByClassId (ClassId));
1166+ if (DiffSinceLastReleaseNs > IntervalNs)
1167+ Str->append (" Last page release > ReleaseToOsInterval\n " );
1168+ else
1169+ Str->append (" Last page release <= ReleaseToOsInterval\n " );
11601170}
11611171
11621172template <typename Config>
0 commit comments