| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/trace_event/memory_dump_manager.h" | 5 #include "base/trace_event/memory_dump_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/allocator/features.h" | 10 #include "base/allocator/features.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 | 46 |
| 47 StaticAtomicSequenceNumber g_next_guid; | 47 StaticAtomicSequenceNumber g_next_guid; |
| 48 MemoryDumpManager* g_instance_for_testing = nullptr; | 48 MemoryDumpManager* g_instance_for_testing = nullptr; |
| 49 | 49 |
| 50 // The list of names of dump providers that are blacklisted from strict thread | 50 // The list of names of dump providers that are blacklisted from strict thread |
| 51 // affinity check on unregistration. These providers could potentially cause | 51 // affinity check on unregistration. These providers could potentially cause |
| 52 // crashes on build bots if they do not unregister on right thread. | 52 // crashes on build bots if they do not unregister on right thread. |
| 53 // TODO(ssid): Fix all the dump providers to unregister if needed and clear the | 53 // TODO(ssid): Fix all the dump providers to unregister if needed and clear the |
| 54 // blacklist, crbug.com/643438. | 54 // blacklist, crbug.com/643438. |
| 55 const char* const kStrictThreadCheckBlacklist[] = { | 55 const char* const kStrictThreadCheckBlacklist[] = { |
| 56 "android::ResourceManagerImpl", | |
| 57 "AndroidGraphics", | 56 "AndroidGraphics", |
| 58 "BrowserGpuMemoryBufferManager", | 57 "BrowserGpuMemoryBufferManager", |
| 59 "ClientDiscardableSharedMemoryManager", | 58 "ClientDiscardableSharedMemoryManager", |
| 60 "ContextProviderCommandBuffer", | 59 "ContextProviderCommandBuffer", |
| 61 "DOMStorage", | |
| 62 "DiscardableSharedMemoryManager", | 60 "DiscardableSharedMemoryManager", |
| 63 "FontCaches", | 61 "FontCaches", |
| 64 "GpuMemoryBufferVideoFramePool", | 62 "GpuMemoryBufferVideoFramePool", |
| 65 "IndexedDBBackingStore", | 63 "IndexedDBBackingStore", |
| 66 "LeveldbValueStore", | |
| 67 "MemoryCache", | |
| 68 "Skia", | |
| 69 "Sql", | 64 "Sql", |
| 70 "ThreadLocalEventBuffer", | 65 "ThreadLocalEventBuffer", |
| 71 "TraceLog", | 66 "TraceLog", |
| 72 "URLRequestContext", | 67 "URLRequestContext", |
| 73 "V8Isolate", | 68 "V8Isolate", |
| 74 "VpxVideoDecoder", | 69 "VpxVideoDecoder", |
| 75 "cc::ResourcePool", | 70 "cc::ResourcePool", |
| 76 "cc::ResourceProvider", | 71 "cc::ResourceProvider", |
| 77 "cc::SoftwareImageDecodeCache", | 72 "cc::SoftwareImageDecodeCache", |
| 78 "cc::StagingBufferPool", | 73 "cc::StagingBufferPool", |
| 79 "gpu::BufferManager", | 74 "gpu::BufferManager", |
| 80 "gpu::MappedMemoryManager", | 75 "gpu::MappedMemoryManager", |
| 81 "gpu::RenderbufferManager", | 76 "gpu::RenderbufferManager", |
| 82 "gpu::TextureManager", | |
| 83 "gpu::TransferBufferManager", | 77 "gpu::TransferBufferManager", |
| 84 "sql::Connection", | 78 "sql::Connection", |
| 85 "SyncDirectory", | |
| 86 "BlacklistTestDumpProvider" // for testing | 79 "BlacklistTestDumpProvider" // for testing |
| 87 }; | 80 }; |
| 88 | 81 |
| 89 // Callback wrapper to hook upon the completion of RequestGlobalDump() and | 82 // Callback wrapper to hook upon the completion of RequestGlobalDump() and |
| 90 // inject trace markers. | 83 // inject trace markers. |
| 91 void OnGlobalDumpDone(MemoryDumpCallback wrapped_callback, | 84 void OnGlobalDumpDone(MemoryDumpCallback wrapped_callback, |
| 92 uint64_t dump_guid, | 85 uint64_t dump_guid, |
| 93 bool success) { | 86 bool success) { |
| 94 TRACE_EVENT_NESTABLE_ASYNC_END1( | 87 TRACE_EVENT_NESTABLE_ASYNC_END1( |
| 95 MemoryDumpManager::kTraceCategory, "GlobalMemoryDump", | 88 MemoryDumpManager::kTraceCategory, "GlobalMemoryDump", |
| (...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1000 if (heavy_dump_rate_ > 0 && periodic_dumps_count_ % heavy_dump_rate_ == 0) | 993 if (heavy_dump_rate_ > 0 && periodic_dumps_count_ % heavy_dump_rate_ == 0) |
| 1001 level_of_detail = MemoryDumpLevelOfDetail::DETAILED; | 994 level_of_detail = MemoryDumpLevelOfDetail::DETAILED; |
| 1002 ++periodic_dumps_count_; | 995 ++periodic_dumps_count_; |
| 1003 | 996 |
| 1004 MemoryDumpManager::GetInstance()->RequestGlobalDump( | 997 MemoryDumpManager::GetInstance()->RequestGlobalDump( |
| 1005 MemoryDumpType::PERIODIC_INTERVAL, level_of_detail); | 998 MemoryDumpType::PERIODIC_INTERVAL, level_of_detail); |
| 1006 } | 999 } |
| 1007 | 1000 |
| 1008 } // namespace trace_event | 1001 } // namespace trace_event |
| 1009 } // namespace base | 1002 } // namespace base |
| OLD | NEW |