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

Side by Side Diff: base/trace_event/memory_dump_request_args.h

Issue 2755343003: memory-infra: Add a struct to carry memory use information (Closed)
Patch Set: remove one field and rename one field Created 3 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | base/trace_event/memory_dump_request_args.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_ 5 #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
6 #define BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_ 6 #define BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
7 7
8 // This file defines the types and structs used to issue memory dump requests. 8 // This file defines the types and structs used to issue memory dump requests.
9 // These are also used in the IPCs for coordinating inter-process memory dumps. 9 // These are also used in the IPCs for coordinating inter-process memory dumps.
10 10
11 #include <stdint.h> 11 #include <stdint.h>
12 #include <map>
12 #include <string> 13 #include <string>
13 14
14 #include "base/base_export.h" 15 #include "base/base_export.h"
15 #include "base/callback.h" 16 #include "base/callback.h"
17 #include "base/process/process_handle.h"
16 18
17 namespace base { 19 namespace base {
18 namespace trace_event { 20 namespace trace_event {
19 21
20 // Captures the reason why a memory dump is being requested. This is to allow 22 // Captures the reason why a memory dump is being requested. This is to allow
21 // selective enabling of dumps, filtering and post-processing. Important: this 23 // selective enabling of dumps, filtering and post-processing. Important: this
22 // must be kept consistent with 24 // must be kept consistent with
23 // services/resource_coordinator/public/cpp/memory/memory_infra_traits.cc. 25 // services/resource_coordinator/public/cpp/memory/memory_infra_traits.cc.
24 enum class MemoryDumpType { 26 enum class MemoryDumpType {
25 PERIODIC_INTERVAL, // Dumping memory at periodic intervals. 27 PERIODIC_INTERVAL, // Dumping memory at periodic intervals.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 MemoryDumpLevelOfDetail level_of_detail; 67 MemoryDumpLevelOfDetail level_of_detail;
66 }; 68 };
67 69
68 // Args for ProcessMemoryDump and passed to OnMemoryDump calls for memory dump 70 // Args for ProcessMemoryDump and passed to OnMemoryDump calls for memory dump
69 // providers. Dump providers are expected to read the args for creating dumps. 71 // providers. Dump providers are expected to read the args for creating dumps.
70 struct MemoryDumpArgs { 72 struct MemoryDumpArgs {
71 // Specifies how detailed the dumps should be. 73 // Specifies how detailed the dumps should be.
72 MemoryDumpLevelOfDetail level_of_detail; 74 MemoryDumpLevelOfDetail level_of_detail;
73 }; 75 };
74 76
77 // TODO(hjd): Not used yet, see crbug.com/703184
78 // Summarises information about memory use as seen by a single process.
79 // This information will eventually be passed to a service to be colated
80 // and reported.
81 struct MemoryDumpCallbackResult {
82 struct OSMemDump {
83 uint32_t resident_set_kb = 0;
84 };
85 struct ChromeMemDump {
86 uint32_t malloc_total_kb = 0;
87 uint32_t partition_alloc_total_kb = 0;
88 uint32_t blink_gc_total_kb = 0;
89 uint32_t v8_total_kb = 0;
90 };
91
92 // These are for the current process.
93 OSMemDump os_dump;
94 ChromeMemDump chrome_dump;
95
96 // In some cases, OS stats can only be dumped from a privileged process to
97 // get around to sandboxing/selinux restrictions (see crbug.com/461788).
98 std::map<ProcessId, OSMemDump> extra_processes_dump;
99
100 MemoryDumpCallbackResult();
101 ~MemoryDumpCallbackResult();
102 };
103
75 using MemoryDumpCallback = Callback<void(uint64_t dump_guid, bool success)>; 104 using MemoryDumpCallback = Callback<void(uint64_t dump_guid, bool success)>;
76 105
77 BASE_EXPORT const char* MemoryDumpTypeToString(const MemoryDumpType& dump_type); 106 BASE_EXPORT const char* MemoryDumpTypeToString(const MemoryDumpType& dump_type);
78 107
79 BASE_EXPORT MemoryDumpType StringToMemoryDumpType(const std::string& str); 108 BASE_EXPORT MemoryDumpType StringToMemoryDumpType(const std::string& str);
80 109
81 BASE_EXPORT const char* MemoryDumpLevelOfDetailToString( 110 BASE_EXPORT const char* MemoryDumpLevelOfDetailToString(
82 const MemoryDumpLevelOfDetail& level_of_detail); 111 const MemoryDumpLevelOfDetail& level_of_detail);
83 112
84 BASE_EXPORT MemoryDumpLevelOfDetail 113 BASE_EXPORT MemoryDumpLevelOfDetail
85 StringToMemoryDumpLevelOfDetail(const std::string& str); 114 StringToMemoryDumpLevelOfDetail(const std::string& str);
86 115
87 } // namespace trace_event 116 } // namespace trace_event
88 } // namespace base 117 } // namespace base
89 118
90 #endif // BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_ 119 #endif // BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
OLDNEW
« no previous file with comments | « no previous file | base/trace_event/memory_dump_request_args.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698