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

Side by Side Diff: third_party/WebKit/Source/wtf/allocator/Partitions.cpp

Issue 2130293003: Change OOMs to raise custom exception rather than breakpoint on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 decommitFreeableMemory(); 110 decommitFreeableMemory();
111 partitionDumpStatsGeneric(fastMallocPartition(), "fast_malloc", isLightDump, partitionStatsDumper); 111 partitionDumpStatsGeneric(fastMallocPartition(), "fast_malloc", isLightDump, partitionStatsDumper);
112 partitionDumpStatsGeneric(bufferPartition(), "buffer", isLightDump, partitio nStatsDumper); 112 partitionDumpStatsGeneric(bufferPartition(), "buffer", isLightDump, partitio nStatsDumper);
113 partitionDumpStats(layoutPartition(), "layout", isLightDump, partitionStatsD umper); 113 partitionDumpStats(layoutPartition(), "layout", isLightDump, partitionStatsD umper);
114 } 114 }
115 115
116 static NEVER_INLINE void partitionsOutOfMemoryUsing2G() 116 static NEVER_INLINE void partitionsOutOfMemoryUsing2G()
117 { 117 {
118 size_t signature = 2UL * 1024 * 1024 * 1024; 118 size_t signature = 2UL * 1024 * 1024 * 1024;
119 base::debug::Alias(&signature); 119 base::debug::Alias(&signature);
120 IMMEDIATE_CRASH(); 120 OOM_CRASH();
121 } 121 }
122 122
123 static NEVER_INLINE void partitionsOutOfMemoryUsing1G() 123 static NEVER_INLINE void partitionsOutOfMemoryUsing1G()
124 { 124 {
125 size_t signature = 1UL * 1024 * 1024 * 1024; 125 size_t signature = 1UL * 1024 * 1024 * 1024;
126 base::debug::Alias(&signature); 126 base::debug::Alias(&signature);
127 IMMEDIATE_CRASH(); 127 OOM_CRASH();
128 } 128 }
129 129
130 static NEVER_INLINE void partitionsOutOfMemoryUsing512M() 130 static NEVER_INLINE void partitionsOutOfMemoryUsing512M()
131 { 131 {
132 size_t signature = 512 * 1024 * 1024; 132 size_t signature = 512 * 1024 * 1024;
133 base::debug::Alias(&signature); 133 base::debug::Alias(&signature);
134 IMMEDIATE_CRASH(); 134 OOM_CRASH();
135 } 135 }
136 136
137 static NEVER_INLINE void partitionsOutOfMemoryUsing256M() 137 static NEVER_INLINE void partitionsOutOfMemoryUsing256M()
138 { 138 {
139 size_t signature = 256 * 1024 * 1024; 139 size_t signature = 256 * 1024 * 1024;
140 base::debug::Alias(&signature); 140 base::debug::Alias(&signature);
141 IMMEDIATE_CRASH(); 141 OOM_CRASH();
142 } 142 }
143 143
144 static NEVER_INLINE void partitionsOutOfMemoryUsing128M() 144 static NEVER_INLINE void partitionsOutOfMemoryUsing128M()
145 { 145 {
146 size_t signature = 128 * 1024 * 1024; 146 size_t signature = 128 * 1024 * 1024;
147 base::debug::Alias(&signature); 147 base::debug::Alias(&signature);
148 IMMEDIATE_CRASH(); 148 OOM_CRASH();
149 } 149 }
150 150
151 static NEVER_INLINE void partitionsOutOfMemoryUsing64M() 151 static NEVER_INLINE void partitionsOutOfMemoryUsing64M()
152 { 152 {
153 size_t signature = 64 * 1024 * 1024; 153 size_t signature = 64 * 1024 * 1024;
154 base::debug::Alias(&signature); 154 base::debug::Alias(&signature);
155 IMMEDIATE_CRASH(); 155 OOM_CRASH();
156 } 156 }
157 157
158 static NEVER_INLINE void partitionsOutOfMemoryUsing32M() 158 static NEVER_INLINE void partitionsOutOfMemoryUsing32M()
159 { 159 {
160 size_t signature = 32 * 1024 * 1024; 160 size_t signature = 32 * 1024 * 1024;
161 base::debug::Alias(&signature); 161 base::debug::Alias(&signature);
162 IMMEDIATE_CRASH(); 162 OOM_CRASH();
163 } 163 }
164 164
165 static NEVER_INLINE void partitionsOutOfMemoryUsing16M() 165 static NEVER_INLINE void partitionsOutOfMemoryUsing16M()
166 { 166 {
167 size_t signature = 16 * 1024 * 1024; 167 size_t signature = 16 * 1024 * 1024;
168 base::debug::Alias(&signature); 168 base::debug::Alias(&signature);
169 IMMEDIATE_CRASH(); 169 OOM_CRASH();
170 } 170 }
171 171
172 static NEVER_INLINE void partitionsOutOfMemoryUsingLessThan16M() 172 static NEVER_INLINE void partitionsOutOfMemoryUsingLessThan16M()
173 { 173 {
174 size_t signature = 16 * 1024 * 1024 - 1; 174 size_t signature = 16 * 1024 * 1024 - 1;
175 base::debug::Alias(&signature); 175 base::debug::Alias(&signature);
176 DLOG(FATAL) << "ParitionAlloc: out of memory with < 16M usage (error:" << ge tAllocPageErrorCode() << ")"; 176 DLOG(FATAL) << "ParitionAlloc: out of memory with < 16M usage (error:" << ge tAllocPageErrorCode() << ")";
177 } 177 }
178 178
179 void Partitions::handleOutOfMemory() 179 void Partitions::handleOutOfMemory()
(...skipping 15 matching lines...) Expand all
195 if (totalUsage >= 64 * 1024 * 1024) 195 if (totalUsage >= 64 * 1024 * 1024)
196 partitionsOutOfMemoryUsing64M(); 196 partitionsOutOfMemoryUsing64M();
197 if (totalUsage >= 32 * 1024 * 1024) 197 if (totalUsage >= 32 * 1024 * 1024)
198 partitionsOutOfMemoryUsing32M(); 198 partitionsOutOfMemoryUsing32M();
199 if (totalUsage >= 16 * 1024 * 1024) 199 if (totalUsage >= 16 * 1024 * 1024)
200 partitionsOutOfMemoryUsing16M(); 200 partitionsOutOfMemoryUsing16M();
201 partitionsOutOfMemoryUsingLessThan16M(); 201 partitionsOutOfMemoryUsingLessThan16M();
202 } 202 }
203 203
204 } // namespace WTF 204 } // namespace WTF
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/allocator/PartitionAlloc.cpp ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698