Skip to content

Commit

Permalink
[discardable_memory] Report dirty freelist size in about:tracing
Browse files Browse the repository at this point in the history
Bug: None
Change-Id: Iac5958212224cc9fcad1fb6f0766a7732b7eccf3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2895608
Reviewed-by: Thiabaud Engelbrecht <thiabaud@google.com>
Reviewed-by: Caitlin Fischer <caitlinfischer@google.com>
Reviewed-by: Benoit L <lizeb@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Thiabaud Engelbrecht <thiabaud@google.com>
Cr-Commit-Position: refs/heads/master@{#884877}
  • Loading branch information
Thiabaud Engelbrecht authored and Chromium LUCI CQ committed May 20, 2021
1 parent c406f52 commit f3fd18d
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
2 changes: 2 additions & 0 deletions chrome/browser/metrics/process_memory_metrics_emitter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,8 @@ const Metric kAllocatorDumpNamesForMetrics[] = {
EmitTo::kSizeInUkmAndUma, &Memory_Experimental::SetDiscardable},
{"discardable", "Discardable.FreelistSize", MetricSize::kSmall,
"freelist_size", EmitTo::kSizeInUmaOnly, nullptr},
{"discardable", "Discardable.FreelistSize.Dirty", MetricSize::kSmall,
"freelist_size_dirty", EmitTo::kSizeInUmaOnly, nullptr},
{"discardable", "Discardable.ResidentSize", MetricSize::kSmall,
"resident_size", EmitTo::kSizeInUmaOnly, nullptr},
{"discardable", "Discardable.VirtualSize", MetricSize::kSmall,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,9 @@ bool DiscardableSharedMemoryHeap::OnMemoryDump(
total_dump->AddScalar("freelist_size",
base::trace_event::MemoryAllocatorDump::kUnitsBytes,
freelist_size);
total_dump->AddScalar("freelist_size_dirty",
base::trace_event::MemoryAllocatorDump::kUnitsBytes,
dirty_freed_memory_page_count_ * base::GetPageSize());
if (args.level_of_detail ==
base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND) {
// These metrics (size and virtual size) are also reported by each
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,11 +361,14 @@ TEST(DiscardableSharedMemoryHeapTest, OnMemoryDumpTest) {
"discardable/child_0x%" PRIXPTR, reinterpret_cast<uintptr_t>(&heap)));
ASSERT_NE(nullptr, dump);

base::trace_event::MemoryAllocatorDump::Entry freelist("freelist_size",
"bytes", 0);
base::trace_event::MemoryAllocatorDump::Entry freelist_size("freelist_size",
"bytes", 0);
base::trace_event::MemoryAllocatorDump::Entry freelist_size_dirty(
"freelist_size_dirty", "bytes", 0);
base::trace_event::MemoryAllocatorDump::Entry virtual_size("virtual_size",
"bytes", 0);
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(freelist))));
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(freelist_size))));
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(freelist_size_dirty))));
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(virtual_size))));
}

Expand All @@ -382,11 +385,14 @@ TEST(DiscardableSharedMemoryHeapTest, OnMemoryDumpTest) {
"discardable/child_0x%" PRIXPTR, reinterpret_cast<uintptr_t>(&heap)));
ASSERT_NE(nullptr, dump);

base::trace_event::MemoryAllocatorDump::Entry freelist("freelist_size",
"bytes", 0);
base::trace_event::MemoryAllocatorDump::Entry freelist_size("freelist_size",
"bytes", 0);
base::trace_event::MemoryAllocatorDump::Entry freelist_size_dirty(
"freelist_size_dirty", "bytes", 0);
base::trace_event::MemoryAllocatorDump::Entry virtual_size(
"virtual_size", "bytes", block_size);
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(freelist))));
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(freelist_size))));
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(freelist_size_dirty))));
EXPECT_THAT(dump->entries(), Contains(Eq(ByRef(virtual_size))));
}

Expand Down

0 comments on commit f3fd18d

Please sign in to comment.