Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1523)

Unified Diff: content/common/discardable_shared_memory_heap.cc

Issue 1407483003: Reland of [tracing] Display the locked size of discardable memory segment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 ccf2729c557f660e3b675def1393449be60564dd..b641c0697442579e09a4b2801beca411f05540e3 100644
--- a/content/common/discardable_shared_memory_heap.cc
+++ b/content/common/discardable_shared_memory_heap.cc
@@ -28,8 +28,10 @@ DiscardableSharedMemoryHeap::Span::Span(
base::DiscardableSharedMemory* shared_memory,
size_t start,
size_t length)
- : shared_memory_(shared_memory), start_(start), length_(length) {
-}
+ : shared_memory_(shared_memory),
+ start_(start),
+ length_(length),
+ is_locked_(false) {}
DiscardableSharedMemoryHeap::Span::~Span() {
}
@@ -278,6 +280,7 @@ DiscardableSharedMemoryHeap::Carve(Span* span, size_t blocks) {
if (extra) {
scoped_ptr<Span> leftover(
new Span(serving->shared_memory_, serving->start_ + blocks, extra));
+ leftover->set_is_locked(false);
DCHECK_IMPLIES(extra > 1, spans_.find(leftover->start_) == spans_.end());
RegisterSpan(leftover.get());
@@ -366,18 +369,23 @@ void DiscardableSharedMemoryHeap::OnMemoryDump(
int32_t segment_id,
base::trace_event::ProcessMemoryDump* pmd) {
size_t allocated_objects_count = 0;
- size_t allocated_objects_size_in_bytes = 0;
+ size_t allocated_objects_blocks = 0;
reveman 2015/10/13 18:24:33 nit: /_objects_blocks/objects_size_in_blocks/
+ size_t locked_objects_blocks = 0;
reveman 2015/10/13 18:24:33 nit: ditto
size_t offset =
reinterpret_cast<size_t>(shared_memory->memory()) / block_size_;
size_t end = offset + size / block_size_;
while (offset < end) {
Span* span = spans_[offset];
if (!IsInFreeList(span)) {
+ allocated_objects_blocks += span->length_;
+ locked_objects_blocks += span->is_locked_ ? span->length_ : 0;
allocated_objects_count++;
- allocated_objects_size_in_bytes += span->length_ * block_size_;
}
offset += span->length_;
}
+ size_t allocated_objects_size_in_bytes =
+ allocated_objects_blocks * block_size_;
+ size_t locked_objects_size_in_bytes = locked_objects_blocks * block_size_;
std::string segment_dump_name =
base::StringPrintf("discardable/segment_%d", segment_id);
@@ -385,16 +393,19 @@ void DiscardableSharedMemoryHeap::OnMemoryDump(
pmd->CreateAllocatorDump(segment_dump_name);
segment_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
base::trace_event::MemoryAllocatorDump::kUnitsBytes,
- static_cast<uint64_t>(size));
+ size);
base::trace_event::MemoryAllocatorDump* obj_dump =
pmd->CreateAllocatorDump(segment_dump_name + "/allocated_objects");
obj_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount,
base::trace_event::MemoryAllocatorDump::kUnitsObjects,
- static_cast<uint64_t>(allocated_objects_count));
+ allocated_objects_count);
obj_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
base::trace_event::MemoryAllocatorDump::kUnitsBytes,
- static_cast<uint64_t>(allocated_objects_size_in_bytes));
+ allocated_objects_size_in_bytes);
+ obj_dump->AddScalar("locked_size",
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes,
+ locked_objects_size_in_bytes);
// Emit an ownership edge towards a global allocator dump node. This allows
// to avoid double-counting segments when both browser and child process emit
« no previous file with comments | « content/common/discardable_shared_memory_heap.h ('k') | content/common/host_discardable_shared_memory_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698