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..cec67258e04d9736c633393e0c6eb3a74f35b5e1 100644 |
--- a/content/common/discardable_shared_memory_heap.cc |
+++ b/content/common/discardable_shared_memory_heap.cc |
@@ -278,6 +278,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()); |
@@ -367,14 +368,17 @@ void DiscardableSharedMemoryHeap::OnMemoryDump( |
base::trace_event::ProcessMemoryDump* pmd) { |
size_t allocated_objects_count = 0; |
size_t allocated_objects_size_in_bytes = 0; |
+ size_t locked_size_in_bytes = 0; |
reveman
2015/10/01 10:34:39
nit: locked_objects_size_in_bytes to be consistent
ssid
2015/10/01 14:08:46
Done.
|
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)) { |
+ const size_t span_size = span->length_ * block_size_; |
reveman
2015/10/01 10:34:39
How about computing allocated_objects_size_in_bloc
ssid
2015/10/01 14:08:46
Done.
|
+ allocated_objects_size_in_bytes += span_size; |
+ locked_size_in_bytes += span->is_locked_ ? span_size : 0; |
allocated_objects_count++; |
- allocated_objects_size_in_bytes += span->length_ * block_size_; |
} |
offset += span->length_; |
} |
@@ -395,6 +399,9 @@ void DiscardableSharedMemoryHeap::OnMemoryDump( |
obj_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |
base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
static_cast<uint64_t>(allocated_objects_size_in_bytes)); |
+ obj_dump->AddScalar("locked_size", |
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
+ locked_size_in_bytes); |
reveman
2015/10/01 10:34:39
why no static_cast<uint64_t> here but we have one
ssid
2015/10/01 14:08:46
I think initially it was added since the AddScalar
|
// Emit an ownership edge towards a global allocator dump node. This allows |
// to avoid double-counting segments when both browser and child process emit |