Chromium Code Reviews| 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 |