Index: content/common/discardable_shared_memory_heap.cc |
diff --git a/content/common/discardable_shared_memory_heap.cc b/content/common/discardable_shared_memory_heap.cc |
index 958fa82554efecf5d9c4dee25bb6206cf7e891c9..da30ba262c4a7b534f4bfd2b51c190323ee3d145 100644 |
--- a/content/common/discardable_shared_memory_heap.cc |
+++ b/content/common/discardable_shared_memory_heap.cc |
@@ -22,6 +22,8 @@ bool IsInFreeList(DiscardableSharedMemoryHeap::Span* span) { |
return span->previous() || span->next(); |
} |
+const char kDiscardableSegmentsDumpName[] = "discardable/segments"; |
+ |
} // namespace |
DiscardableSharedMemoryHeap::Span::Span( |
@@ -225,6 +227,7 @@ size_t DiscardableSharedMemoryHeap::GetSizeOfFreeLists() const { |
bool DiscardableSharedMemoryHeap::OnMemoryDump( |
base::trace_event::ProcessMemoryDump* pmd) { |
+ CreateAllocatedObjectsDump(pmd); |
std::for_each( |
memory_segments_.begin(), memory_segments_.end(), |
[pmd](const ScopedMemorySegment* segment) { |
@@ -356,8 +359,8 @@ void DiscardableSharedMemoryHeap::OnMemoryDump( |
offset += span->length_; |
} |
- std::string segment_dump_name = |
- base::StringPrintf("discardable/segment_%d", segment_id); |
+ std::string segment_dump_name = base::StringPrintf( |
+ "%s/segment_%d", kDiscardableSegmentsDumpName, segment_id); |
base::trace_event::MemoryAllocatorDump* segment_dump = |
pmd->CreateAllocatorDump(segment_dump_name); |
segment_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |
@@ -390,6 +393,21 @@ void DiscardableSharedMemoryHeap::OnMemoryDump( |
pmd->AddOwnershipEdge(segment_dump->guid(), shared_segment_guid, kImportance); |
} |
+void DiscardableSharedMemoryHeap::CreateAllocatedObjectsDump( |
petrcermak
2015/07/29 16:38:59
nit: I think you should say "// static" above the
ssid
2015/07/29 16:57:37
Done.
|
+ base::trace_event::ProcessMemoryDump* pmd) { |
+ base::trace_event::MemoryAllocatorDump* objects_dump = |
+ pmd->CreateAllocatorDump( |
+ base::DiscardableSharedMemory::kAllocatedObjectsDumpName); |
+ base::trace_event::MemoryAllocatorDump* discardable_segments_dump = |
+ pmd->CreateAllocatorDump(kDiscardableSegmentsDumpName); |
+ |
+ // The discardable memory segments will contain kDiscardableSegmentsDumpName |
petrcermak
2015/07/29 16:38:59
This is reversed. The dump called kDiscardableSegm
ssid
2015/07/29 16:57:37
Done.
|
+ // as the root and will own any sub-allocations with kAllocatedObjectsDumpName |
petrcermak
2015/07/29 16:38:59
Probably "parent" or "ancestor" instead of "root"
petrcermak
2015/07/29 16:38:59
s/own/be owned by/
ssid
2015/07/29 16:57:37
Done.
|
+ // as the root. |
+ pmd->AddOwnershipEdge(objects_dump->guid(), |
+ discardable_segments_dump->guid()); |
+} |
+ |
// static |
base::trace_event::MemoryAllocatorDumpGuid |
DiscardableSharedMemoryHeap::GetSegmentGUIDForTracing(uint64 tracing_process_id, |