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

Unified Diff: components/discardable_memory/client/client_discardable_shared_memory_manager.cc

Issue 2459733002: Move discardable memory to //components from //content (Closed)
Patch Set: Fix build error Created 4 years, 1 month 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: components/discardable_memory/client/client_discardable_shared_memory_manager.cc
diff --git a/content/child/child_discardable_shared_memory_manager.cc b/components/discardable_memory/client/client_discardable_shared_memory_manager.cc
similarity index 84%
rename from content/child/child_discardable_shared_memory_manager.cc
rename to components/discardable_memory/client/client_discardable_shared_memory_manager.cc
index 1d1aa4c4591f0ba2aaacf3050aeb3e08ba6c4dc4..22239e13869644b0243684a01e7a3c60eea03de1 100644
--- a/content/child/child_discardable_shared_memory_manager.cc
+++ b/components/discardable_memory/client/client_discardable_shared_memory_manager.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/child/child_discardable_shared_memory_manager.h"
+#include "components/discardable_memory/client/client_discardable_shared_memory_manager.h"
#include <inttypes.h>
@@ -24,9 +24,8 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
-#include "content/common/child_process_messages.h"
-namespace content {
+namespace discardable_memory {
namespace {
// Default allocation size.
@@ -37,7 +36,7 @@ base::StaticAtomicSequenceNumber g_next_discardable_shared_memory_id;
class DiscardableMemoryImpl : public base::DiscardableMemory {
public:
- DiscardableMemoryImpl(ChildDiscardableSharedMemoryManager* manager,
+ DiscardableMemoryImpl(ClientDiscardableSharedMemoryManager* manager,
std::unique_ptr<DiscardableSharedMemoryHeap::Span> span)
: manager_(manager), span_(std::move(span)), is_locked_(true) {}
@@ -76,7 +75,7 @@ class DiscardableMemoryImpl : public base::DiscardableMemory {
}
private:
- ChildDiscardableSharedMemoryManager* const manager_;
+ ClientDiscardableSharedMemoryManager* const manager_;
std::unique_ptr<DiscardableSharedMemoryHeap::Span> span_;
bool is_locked_;
@@ -84,22 +83,22 @@ class DiscardableMemoryImpl : public base::DiscardableMemory {
};
void SendDeletedDiscardableSharedMemoryMessage(
- scoped_refptr<ThreadSafeSender> sender,
+ ClientDiscardableSharedMemoryManager::Delegate* delegate,
DiscardableSharedMemoryId id) {
- sender->Send(new ChildProcessHostMsg_DeletedDiscardableSharedMemory(id));
+ delegate->DeletedDiscardableSharedMemory(id);
}
} // namespace
-ChildDiscardableSharedMemoryManager::ChildDiscardableSharedMemoryManager(
- ThreadSafeSender* sender)
- : heap_(base::GetPageSize()), sender_(sender) {
+ClientDiscardableSharedMemoryManager::ClientDiscardableSharedMemoryManager(
+ Delegate* delegate)
+ : heap_(base::GetPageSize()), delegate_(delegate) {
base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
- this, "ChildDiscardableSharedMemoryManager",
+ this, "ClientDiscardableSharedMemoryManager",
base::ThreadTaskRunnerHandle::Get());
}
-ChildDiscardableSharedMemoryManager::~ChildDiscardableSharedMemoryManager() {
+ClientDiscardableSharedMemoryManager::~ClientDiscardableSharedMemoryManager() {
base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider(
this);
// TODO(reveman): Determine if this DCHECK can be enabled. crbug.com/430533
@@ -109,14 +108,15 @@ ChildDiscardableSharedMemoryManager::~ChildDiscardableSharedMemoryManager() {
}
std::unique_ptr<base::DiscardableMemory>
-ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
+ClientDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
size_t size) {
base::AutoLock lock(lock_);
DCHECK_NE(size, 0u);
+ auto size_in_kb = static_cast<base::HistogramBase::Sample>(size / 1024);
UMA_HISTOGRAM_CUSTOM_COUNTS("Memory.DiscardableAllocationSize",
- size / 1024, // In KB
+ size_in_kb, // In KB
1,
4 * 1024 * 1024, // 4 GB
50);
@@ -189,9 +189,10 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
AllocateLockedDiscardableSharedMemory(allocation_size_in_bytes, new_id));
// Create span for allocated memory.
- std::unique_ptr<DiscardableSharedMemoryHeap::Span> new_span(heap_.Grow(
- std::move(shared_memory), allocation_size_in_bytes, new_id,
- base::Bind(&SendDeletedDiscardableSharedMemoryMessage, sender_, new_id)));
+ std::unique_ptr<DiscardableSharedMemoryHeap::Span> new_span(
+ heap_.Grow(std::move(shared_memory), allocation_size_in_bytes, new_id,
+ base::Bind(&SendDeletedDiscardableSharedMemoryMessage,
+ delegate_, new_id)));
new_span->set_is_locked(true);
// Unlock and insert any left over memory into free lists.
@@ -211,7 +212,7 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
return base::MakeUnique<DiscardableMemoryImpl>(this, std::move(new_span));
}
-bool ChildDiscardableSharedMemoryManager::OnMemoryDump(
+bool ClientDiscardableSharedMemoryManager::OnMemoryDump(
const base::trace_event::MemoryDumpArgs& args,
base::trace_event::ProcessMemoryDump* pmd) {
base::AutoLock lock(lock_);
@@ -235,8 +236,8 @@ bool ChildDiscardableSharedMemoryManager::OnMemoryDump(
return heap_.OnMemoryDump(pmd);
}
-ChildDiscardableSharedMemoryManager::Statistics
-ChildDiscardableSharedMemoryManager::GetStatistics() const {
+ClientDiscardableSharedMemoryManager::Statistics
+ClientDiscardableSharedMemoryManager::GetStatistics() const {
base::AutoLock lock(lock_);
Statistics stats;
stats.total_size = heap_.GetSize();
@@ -244,7 +245,7 @@ ChildDiscardableSharedMemoryManager::GetStatistics() const {
return stats;
}
-void ChildDiscardableSharedMemoryManager::ReleaseFreeMemory() {
+void ClientDiscardableSharedMemoryManager::ReleaseFreeMemory() {
base::AutoLock lock(lock_);
size_t heap_size_prior_to_releasing_memory = heap_.GetSize();
@@ -257,7 +258,7 @@ void ChildDiscardableSharedMemoryManager::ReleaseFreeMemory() {
MemoryUsageChanged(heap_.GetSize(), heap_.GetSizeOfFreeLists());
}
-bool ChildDiscardableSharedMemoryManager::LockSpan(
+bool ClientDiscardableSharedMemoryManager::LockSpan(
DiscardableSharedMemoryHeap::Span* span) {
base::AutoLock lock(lock_);
@@ -265,7 +266,7 @@ bool ChildDiscardableSharedMemoryManager::LockSpan(
return false;
size_t offset = span->start() * base::GetPageSize() -
- reinterpret_cast<size_t>(span->shared_memory()->memory());
+ reinterpret_cast<size_t>(span->shared_memory()->memory());
size_t length = span->length() * base::GetPageSize();
switch (span->shared_memory()->Lock(offset, length)) {
@@ -284,20 +285,20 @@ bool ChildDiscardableSharedMemoryManager::LockSpan(
return false;
}
-void ChildDiscardableSharedMemoryManager::UnlockSpan(
+void ClientDiscardableSharedMemoryManager::UnlockSpan(
DiscardableSharedMemoryHeap::Span* span) {
base::AutoLock lock(lock_);
DCHECK(span->shared_memory());
size_t offset = span->start() * base::GetPageSize() -
- reinterpret_cast<size_t>(span->shared_memory()->memory());
+ reinterpret_cast<size_t>(span->shared_memory()->memory());
size_t length = span->length() * base::GetPageSize();
span->set_is_locked(false);
return span->shared_memory()->Unlock(offset, length);
}
-void ChildDiscardableSharedMemoryManager::ReleaseSpan(
+void ClientDiscardableSharedMemoryManager::ReleaseSpan(
std::unique_ptr<DiscardableSharedMemoryHeap::Span> span) {
base::AutoLock lock(lock_);
@@ -312,7 +313,7 @@ void ChildDiscardableSharedMemoryManager::ReleaseSpan(
}
base::trace_event::MemoryAllocatorDump*
-ChildDiscardableSharedMemoryManager::CreateMemoryAllocatorDump(
+ClientDiscardableSharedMemoryManager::CreateMemoryAllocatorDump(
DiscardableSharedMemoryHeap::Span* span,
const char* name,
base::trace_event::ProcessMemoryDump* pmd) const {
@@ -321,18 +322,16 @@ ChildDiscardableSharedMemoryManager::CreateMemoryAllocatorDump(
}
std::unique_ptr<base::DiscardableSharedMemory>
-ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
+ClientDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
size_t size,
DiscardableSharedMemoryId id) {
TRACE_EVENT2("renderer",
- "ChildDiscardableSharedMemoryManager::"
+ "ClientDiscardableSharedMemoryManager::"
"AllocateLockedDiscardableSharedMemory",
"size", size, "id", id);
base::SharedMemoryHandle handle = base::SharedMemory::NULLHandle();
- sender_->Send(
- new ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory(
- size, id, &handle));
+ delegate_->AllocateLockedDiscardableSharedMemory(size, id, &handle);
std::unique_ptr<base::DiscardableSharedMemory> memory(
new base::DiscardableSharedMemory(handle));
if (!memory->Map(size))
@@ -340,7 +339,7 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
return memory;
}
-void ChildDiscardableSharedMemoryManager::MemoryUsageChanged(
+void ClientDiscardableSharedMemoryManager::MemoryUsageChanged(
size_t new_bytes_total,
size_t new_bytes_free) const {
static const char kDiscardableMemoryAllocatedKey[] =
@@ -353,4 +352,4 @@ void ChildDiscardableSharedMemoryManager::MemoryUsageChanged(
base::Uint64ToString(new_bytes_free));
}
-} // namespace content
+} // namespace discardable_memory

Powered by Google App Engine
This is Rietveld 408576698