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 |