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

Unified Diff: base/trace_event/memory_dump_manager.cc

Issue 2876543002: memory-infra: Don't invoke all dump providers in SUMMARY_ONLY mode (Closed)
Patch Set: fix comment Created 3 years, 7 months 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: base/trace_event/memory_dump_manager.cc
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc
index 08684865cd47e4ce2e9b51b024f3c282c8a9df70..13e6054224bdb7acc72ea5684e75c2ce009d33ce 100644
--- a/base/trace_event/memory_dump_manager.cc
+++ b/base/trace_event/memory_dump_manager.cc
@@ -314,9 +314,12 @@ void MemoryDumpManager::RegisterDumpProviderInternal(
return;
bool whitelisted_for_background_mode = IsMemoryDumpProviderWhitelisted(name);
- scoped_refptr<MemoryDumpProviderInfo> mdpinfo =
- new MemoryDumpProviderInfo(mdp, name, std::move(task_runner), options,
- whitelisted_for_background_mode);
+ bool whitelisted_for_summary_mode =
+ IsMemoryDumpProviderWhitelistedForSummary(name);
+
+ scoped_refptr<MemoryDumpProviderInfo> mdpinfo = new MemoryDumpProviderInfo(
+ mdp, name, std::move(task_runner), options,
+ whitelisted_for_background_mode, whitelisted_for_summary_mode);
if (options.is_fast_polling_supported) {
DCHECK(!mdpinfo->task_runner) << "MemoryDumpProviders capable of fast "
@@ -556,6 +559,14 @@ void MemoryDumpManager::SetupNextMemoryDump(
return SetupNextMemoryDump(std::move(pmd_async_state));
}
+ // If we are in summary mode, we only need to invoke the providers
+ // whitelisted for summary mode.
+ if (pmd_async_state->req_args.dump_type == MemoryDumpType::SUMMARY_ONLY &&
+ !mdpinfo->whitelisted_for_summary_mode) {
+ pmd_async_state->pending_dump_providers.pop_back();
+ return SetupNextMemoryDump(std::move(pmd_async_state));
+ }
+
// If the dump provider did not specify a task runner affinity, dump on
// |dump_thread_|.
SequencedTaskRunner* task_runner = mdpinfo->task_runner.get();
« no previous file with comments | « no previous file | base/trace_event/memory_dump_manager_unittest.cc » ('j') | base/trace_event/memory_dump_manager_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698