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

Side by Side Diff: chrome/app/chrome_main_delegate.cc

Issue 2744783002: Cleanup Linux OOM adjustment code. (Closed)
Patch Set: comment 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 | content/browser/zygote_host/zygote_host_impl_linux.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/app/chrome_main_delegate.h" 5 #include "chrome/app/chrome_main_delegate.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <string> 8 #include <string>
9 9
10 #include "base/base_paths.h" 10 #include "base/base_paths.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 #include "pdf/features.h" 55 #include "pdf/features.h"
56 #include "ppapi/features/features.h" 56 #include "ppapi/features/features.h"
57 #include "printing/features/features.h" 57 #include "printing/features/features.h"
58 #include "ui/base/material_design/material_design_controller.h" 58 #include "ui/base/material_design/material_design_controller.h"
59 #include "ui/base/resource/resource_bundle.h" 59 #include "ui/base/resource/resource_bundle.h"
60 #include "ui/base/ui_base_switches.h" 60 #include "ui/base/ui_base_switches.h"
61 61
62 #if defined(OS_WIN) 62 #if defined(OS_WIN)
63 #include <atlbase.h> 63 #include <atlbase.h>
64 #include <malloc.h> 64 #include <malloc.h>
65
65 #include <algorithm> 66 #include <algorithm>
67
66 #include "base/debug/close_handle_hook_win.h" 68 #include "base/debug/close_handle_hook_win.h"
67 #include "chrome/browser/downgrade/user_data_downgrade.h" 69 #include "chrome/browser/downgrade/user_data_downgrade.h"
68 #include "chrome/child/v8_breakpad_support_win.h" 70 #include "chrome/child/v8_breakpad_support_win.h"
69 #include "chrome/common/child_process_logging.h" 71 #include "chrome/common/child_process_logging.h"
70 #include "components/crash/content/app/crashpad.h"
71 #include "sandbox/win/src/sandbox.h" 72 #include "sandbox/win/src/sandbox.h"
72 #include "ui/base/resource/resource_bundle_win.h" 73 #include "ui/base/resource/resource_bundle_win.h"
73 #endif 74 #endif
74 75
75 #if defined(OS_MACOSX) 76 #if defined(OS_MACOSX)
76 #include "base/mac/foundation_util.h" 77 #include "base/mac/foundation_util.h"
77 #include "chrome/app/chrome_main_mac.h" 78 #include "chrome/app/chrome_main_mac.h"
78 #include "chrome/browser/mac/relauncher.h" 79 #include "chrome/browser/mac/relauncher.h"
79 #include "chrome/browser/shell_integration.h" 80 #include "chrome/browser/shell_integration.h"
80 #include "chrome/common/mac/cfbundle_blocker.h" 81 #include "chrome/common/mac/cfbundle_blocker.h"
81 #include "components/crash/content/app/crashpad.h"
82 #include "components/crash/core/common/objc_zombie.h" 82 #include "components/crash/core/common/objc_zombie.h"
83 #include "ui/base/l10n/l10n_util_mac.h" 83 #include "ui/base/l10n/l10n_util_mac.h"
84 #endif 84 #endif
85 85
86 #if defined(OS_POSIX) 86 #if defined(OS_POSIX)
87 #include <locale.h> 87 #include <locale.h>
88 #include <signal.h> 88 #include <signal.h>
89 #include "chrome/app/chrome_crash_reporter_client.h" 89 #include "chrome/app/chrome_crash_reporter_client.h"
90 #endif 90 #endif
91 91
(...skipping 28 matching lines...) Expand all
120 #if defined(OS_POSIX) && !defined(OS_MACOSX) 120 #if defined(OS_POSIX) && !defined(OS_MACOSX)
121 #include "components/crash/content/app/breakpad_linux.h" 121 #include "components/crash/content/app/breakpad_linux.h"
122 #endif 122 #endif
123 123
124 #if defined(OS_LINUX) 124 #if defined(OS_LINUX)
125 #include "base/environment.h" 125 #include "base/environment.h"
126 #endif 126 #endif
127 127
128 #if defined(OS_MACOSX) || defined(OS_WIN) 128 #if defined(OS_MACOSX) || defined(OS_WIN)
129 #include "chrome/browser/policy/policy_path_parser.h" 129 #include "chrome/browser/policy/policy_path_parser.h"
130 #include "components/crash/content/app/crashpad.h"
130 #endif 131 #endif
131 132
132 #if defined(OS_CHROMEOS) 133 #if defined(OS_CHROMEOS)
133 #include "components/metrics/leak_detector/leak_detector.h" 134 #include "components/metrics/leak_detector/leak_detector.h"
134 #endif 135 #endif
135 136
136 #if !defined(DISABLE_NACL) 137 #if !defined(DISABLE_NACL)
137 #include "components/nacl/common/nacl_switches.h" 138 #include "components/nacl/common/nacl_switches.h"
138 #include "components/nacl/renderer/plugin/ppapi_entrypoints.h" 139 #include "components/nacl/renderer/plugin/ppapi_entrypoints.h"
139 #endif 140 #endif
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 216
216 return false; 217 return false;
217 #else // NDEBUG 218 #else // NDEBUG
218 return true; 219 return true;
219 #endif 220 #endif
220 } 221 }
221 222
222 #endif // defined(OS_WIN) 223 #endif // defined(OS_WIN)
223 224
224 #if defined(OS_LINUX) 225 #if defined(OS_LINUX)
225 static void AdjustLinuxOOMScore(const std::string& process_type) { 226 void AdjustLinuxOOMScore(const std::string& process_type) {
226 // Browsers and zygotes should still be killable, but killed last. 227 // Browsers and zygotes should still be killable, but killed last.
227 const int kZygoteScore = 0; 228 const int kZygoteScore = 0;
228 // The minimum amount to bump a score by. This is large enough that 229 // The minimum amount to bump a score by. This is large enough that
229 // even if it's translated into the old values, it will still go up 230 // even if it's translated into the old values, it will still go up
230 // by at least one. 231 // by at least one.
231 const int kScoreBump = 100; 232 const int kScoreBump = 100;
232 // This is the lowest score that renderers and extensions start with 233 // This is the lowest score that renderers and extensions start with
233 // in the OomPriorityManager. 234 // in the OomPriorityManager.
234 const int kRendererScore = chrome::kLowestRendererOomScore; 235 const int kRendererScore = chrome::kLowestRendererOomScore;
235 // For "miscellaneous" things, we want them after renderers, 236 // For "miscellaneous" things, we want them after renderers,
(...skipping 28 matching lines...) Expand all
264 } else if (process_type == switches::kRendererProcess) { 265 } else if (process_type == switches::kRendererProcess) {
265 LOG(WARNING) << "process type 'renderer' " 266 LOG(WARNING) << "process type 'renderer' "
266 << "should be created through the zygote."; 267 << "should be created through the zygote.";
267 // When debugging, this process type can end up being run directly, but 268 // When debugging, this process type can end up being run directly, but
268 // this isn't the typical path for assigning the OOM score for it. Still, 269 // this isn't the typical path for assigning the OOM score for it. Still,
269 // we want to assign a score that is somewhat representative for debugging. 270 // we want to assign a score that is somewhat representative for debugging.
270 score = kRendererScore; 271 score = kRendererScore;
271 } else { 272 } else {
272 NOTREACHED() << "Unknown process type"; 273 NOTREACHED() << "Unknown process type";
273 } 274 }
275 // In the case of a 0 score, still try to adjust it. Most likely the score is
276 // 0 already, but it may not be if this process inherited a higher score from
277 // its parent process.
274 if (score > -1) 278 if (score > -1)
275 base::AdjustOOMScore(base::GetCurrentProcId(), score); 279 base::AdjustOOMScore(base::GetCurrentProcId(), score);
276 } 280 }
277 #endif // defined(OS_LINUX) 281 #endif // defined(OS_LINUX)
278 282
279 // Returns true if this subprocess type needs the ResourceBundle initialized 283 // Returns true if this subprocess type needs the ResourceBundle initialized
280 // and resources loaded. 284 // and resources loaded.
281 bool SubprocessNeedsResourceBundle(const std::string& process_type) { 285 bool SubprocessNeedsResourceBundle(const std::string& process_type) {
282 return 286 return
283 #if defined(OS_POSIX) && !defined(OS_MACOSX) 287 #if defined(OS_POSIX) && !defined(OS_MACOSX)
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 case version_info::Channel::CANARY: 1084 case version_info::Channel::CANARY:
1081 return true; 1085 return true;
1082 case version_info::Channel::DEV: 1086 case version_info::Channel::DEV:
1083 case version_info::Channel::BETA: 1087 case version_info::Channel::BETA:
1084 case version_info::Channel::STABLE: 1088 case version_info::Channel::STABLE:
1085 default: 1089 default:
1086 // Don't enable instrumentation. 1090 // Don't enable instrumentation.
1087 return false; 1091 return false;
1088 } 1092 }
1089 } 1093 }
OLDNEW
« no previous file with comments | « no previous file | content/browser/zygote_host/zygote_host_impl_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698