Chromium Code Reviews| 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..40a45943ff6a96f2a07dee675996408ce242341f 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,12 @@ class BASE_EXPORT MemoryDumpManager : public TraceLog::EnabledStateObserver { |
| // runner. |
| void InvokeOnMemoryDump(ProcessMemoryDumpAsyncState* owned_pmd_async_state); |
| + // Records a quick total memory usage value that can be polled in short |
|
Primiano Tucci (use gerrit)
2016/12/15 16:45:01
"that can be polled in short intervals" is quite r
ssid
2016/12/16 02:31:54
Done.
|
| + // intervals. This is used to track the memory usage of process without having |
| + // to record all data from dump providers and for detecting peak usages. |
| + // Must be called on the dump thread task runner. |
| + void PollFastMemoryTotal(uint64_t* memory_total); |
|
Primiano Tucci (use gerrit)
2016/12/15 16:45:01
I'd probably add also: this value is approximate t
ssid
2016/12/16 02:31:54
Done.
|
| + |
| // Helper for RegierDumpProvider* functions. |
| void RegisterDumpProviderInternal( |
| MemoryDumpProvider* mdp, |
| @@ -340,6 +347,14 @@ class BASE_EXPORT MemoryDumpManager : public TraceLog::EnabledStateObserver { |
| void UnregisterDumpProviderInternal(MemoryDumpProvider* mdp, |
| bool take_mdp_ownership_and_delete_async); |
| + // Adds / removes polling supported provider to the copy |
|
Primiano Tucci (use gerrit)
2016/12/15 16:45:01
s/polling supported provider/providers that suppor
ssid
2016/12/16 02:31:54
Done.
|
| + // |mdps_for_fast_polling_|. This function should run on the dump thread so |
|
Primiano Tucci (use gerrit)
2016/12/15 16:45:01
No need for the "This function should run..." part
ssid
2016/12/16 02:31:54
Done.
|
| + // that we don't need lock 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_; |
| @@ -349,6 +364,10 @@ class BASE_EXPORT MemoryDumpManager : public TraceLog::EnabledStateObserver { |
| MemoryDumpManagerDelegate* delegate_; // Not owned. |
| + // A copy of mdpinfo list that support polling. It must be accessed only on |
| + // the dump thread for polling without taking lock. |
| + MemoryDumpProviderInfo::OrderedSet mdps_for_fast_polling_; |
|
Primiano Tucci (use gerrit)
2016/12/15 16:45:01
for readability and consistency I would:
move this
ssid
2016/12/16 02:31:54
Done.
|
| + |
| // When true, this instance is in charge of coordinating periodic dumps. |
| bool is_coordinator_; |