| Index: base/trace_event/memory_dump_manager.h
|
| diff --git a/base/trace_event/memory_dump_manager.h b/base/trace_event/memory_dump_manager.h
|
| index 06b772c6e4bd5f050ee6079ba6aacf1b987dfb19..76fdfb982749c6a00a4841f2f523a1a8b3b9db64 100644
|
| --- a/base/trace_event/memory_dump_manager.h
|
| +++ b/base/trace_event/memory_dump_manager.h
|
| @@ -94,7 +94,8 @@ class BASE_EXPORT MemoryDumpManager : public TraceLog::EnabledStateObserver {
|
| // This method takes ownership of the dump provider and guarantees that:
|
| // - The |mdp| will be deleted at some point in the near future.
|
| // - Its deletion will not happen concurrently with the OnMemoryDump() call.
|
| - // Note that OnMemoryDump() calls can still happen after this method returns.
|
| + // Note that OnMemoryDump() and PollFastMemoryTotal() calls can still happen
|
| + // after this method returns.
|
| void UnregisterAndDeleteDumpProviderSoon(
|
| std::unique_ptr<MemoryDumpProvider> mdp);
|
|
|
| @@ -329,6 +330,13 @@ class BASE_EXPORT MemoryDumpManager : public TraceLog::EnabledStateObserver {
|
| // runner.
|
| void InvokeOnMemoryDump(ProcessMemoryDumpAsyncState* owned_pmd_async_state);
|
|
|
| + // Records a quick total memory usage in |memory_total|. This is used to track
|
| + // the memory usage of process without having to record all data from dump
|
| + // providers and for detecting peak usages. This value is approximate to
|
| + // trade-off speed, and not consistent with the rest of the memory-infra
|
| + // metrics. Must be called on the dump thread task runner.
|
| + void PollFastMemoryTotal(uint64_t* memory_total);
|
| +
|
| // Helper for RegierDumpProvider* functions.
|
| void RegisterDumpProviderInternal(
|
| MemoryDumpProvider* mdp,
|
| @@ -340,10 +348,21 @@ class BASE_EXPORT MemoryDumpManager : public TraceLog::EnabledStateObserver {
|
| void UnregisterDumpProviderInternal(MemoryDumpProvider* mdp,
|
| bool take_mdp_ownership_and_delete_async);
|
|
|
| + // Adds / removes provider that supports polling to
|
| + // |dumps_providers_for_polling_|.
|
| + void RegisterPollingMDPOnDumpThread(
|
| + scoped_refptr<MemoryDumpProviderInfo> mdpinfo);
|
| + void UnregisterPollingMDPOnDumpThread(
|
| + scoped_refptr<MemoryDumpProviderInfo> mdpinfo);
|
| +
|
| // An ordererd set of registered MemoryDumpProviderInfo(s), sorted by task
|
| // runner affinity (MDPs belonging to the same task runners are adjacent).
|
| MemoryDumpProviderInfo::OrderedSet dump_providers_;
|
|
|
| + // A copy of mdpinfo list that support polling. It must be accessed only on
|
| + // the dump thread if dump thread exists.
|
| + MemoryDumpProviderInfo::OrderedSet dumps_providers_for_polling_;
|
| +
|
| // Shared among all the PMDs to keep state scoped to the tracing session.
|
| scoped_refptr<MemoryDumpSessionState> session_state_;
|
|
|
|
|