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

Side by Side Diff: chrome/browser/memory/tab_manager_delegate_chromeos.h

Issue 2247433002: TabManager: Set OOM scores via a new debugd interface on ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 // 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 CHROME_BROWSER_MEMORY_TAB_MANAGER_DELEGATE_CHROMEOS_H_ 5 #ifndef CHROME_BROWSER_MEMORY_TAB_MANAGER_DELEGATE_CHROMEOS_H_
6 #define CHROME_BROWSER_MEMORY_TAB_MANAGER_DELEGATE_CHROMEOS_H_ 6 #define CHROME_BROWSER_MEMORY_TAB_MANAGER_DELEGATE_CHROMEOS_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 // Returns oom_score_adj of a process if the score is cached by |this|. 83 // Returns oom_score_adj of a process if the score is cached by |this|.
84 // If couldn't find the score in the cache, returns -1001 since the valid 84 // If couldn't find the score in the cache, returns -1001 since the valid
85 // range of oom_score_adj is [-1000, 1000]. 85 // range of oom_score_adj is [-1000, 1000].
86 int GetCachedOomScore(base::ProcessHandle process_handle); 86 int GetCachedOomScore(base::ProcessHandle process_handle);
87 87
88 // Called when the timer fires, sets oom_adjust_score for all renderers. 88 // Called when the timer fires, sets oom_adjust_score for all renderers.
89 void AdjustOomPriorities(const TabStatsList& tab_list); 89 void AdjustOomPriorities(const TabStatsList& tab_list);
90 90
91 protected: 91 protected:
92 // Sets oom_score_adj for a list of tabs. 92 // Sets oom_score_adj for a list of tabs.
93 // This is a delegator to to SetOomScoreAdjForTabsOnFileThread(), 93 // This is a delegator to to SetOomScoreAdjOnFileThread(),
94 // also as a seam for unit test. 94 // also as a seam for unit test.
95 virtual void SetOomScoreAdjForTabs( 95 virtual void SetOomScoreAdj(
96 const std::vector<std::pair<base::ProcessHandle, int>>& entries); 96 const std::vector<std::pair<base::ProcessHandle, int>>& entries);
97 97
98 // Kills an Arc process. Returns true if the kill request is successfully sent 98 // Kills an Arc process. Returns true if the kill request is successfully sent
99 // to Android. Virtual for unit testing. 99 // to Android. Virtual for unit testing.
100 virtual bool KillArcProcess(const int nspid); 100 virtual bool KillArcProcess(const int nspid);
101 101
102 // Kills a tab. Returns true if the tab is killed successfully. 102 // Kills a tab. Returns true if the tab is killed successfully.
103 // Virtual for unit testing. 103 // Virtual for unit testing.
104 virtual bool KillTab(int64_t tab_id); 104 virtual bool KillTab(int64_t tab_id);
105 105
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 void AdjustFocusedTabScoreOnFileThread(); 146 void AdjustFocusedTabScoreOnFileThread();
147 147
148 // Sets a newly focused tab the highest priority process if it wasn't. 148 // Sets a newly focused tab the highest priority process if it wasn't.
149 void AdjustFocusedTabScore(base::ProcessHandle pid); 149 void AdjustFocusedTabScore(base::ProcessHandle pid);
150 150
151 // Called by AdjustOomPriorities. Runs on the main thread. 151 // Called by AdjustOomPriorities. Runs on the main thread.
152 void AdjustOomPrioritiesImpl( 152 void AdjustOomPrioritiesImpl(
153 const TabStatsList& tab_list, 153 const TabStatsList& tab_list,
154 const std::vector<arc::ArcProcess>& arc_processes); 154 const std::vector<arc::ArcProcess>& arc_processes);
155 155
156 // Sets oom_score_adj of an ARC app.
157 void SetOomScoreAdjForApp(int nspid, int score);
158
159 // Sets oom_score_adj for a list of tabs on the file thread. 156 // Sets oom_score_adj for a list of tabs on the file thread.
160 void SetOomScoreAdjForTabsOnFileThread( 157 void SetOomScoreAdjOnFileThread(
161 const std::vector<std::pair<base::ProcessHandle, int>>& entries); 158 const std::vector<std::pair<base::ProcessHandle, int>>& entries);
162 159
163 // Sets OOM score for processes in the range [|rbegin|, |rend|) to integers 160 // Sets OOM score for processes in the range [|rbegin|, |rend|) to integers
164 // distributed evenly in [|range_begin|, |range_end|). 161 // distributed evenly in [|range_begin|, |range_end|).
165 // The new score is set in |new_map|. 162 // The new score is set in |new_map|.
166 void DistributeOomScoreInRange( 163 void DistributeOomScoreInRange(
167 std::vector<TabManagerDelegate::Candidate>::const_iterator begin, 164 std::vector<TabManagerDelegate::Candidate>::const_iterator begin,
168 std::vector<TabManagerDelegate::Candidate>::const_iterator end, 165 std::vector<TabManagerDelegate::Candidate>::const_iterator end,
169 int range_begin, 166 int range_begin,
170 int range_end, 167 int range_end,
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 // reported if available memory is under the number. 261 // reported if available memory is under the number.
265 static int LowMemoryMarginKB(); 262 static int LowMemoryMarginKB();
266 263
267 // Reads in an integer. 264 // Reads in an integer.
268 static int ReadIntFromFile(const char* file_name, int default_val); 265 static int ReadIntFromFile(const char* file_name, int default_val);
269 }; 266 };
270 267
271 } // namespace memory 268 } // namespace memory
272 269
273 #endif // CHROME_BROWSER_MEMORY_TAB_MANAGER_DELEGATE_CHROMEOS_H_ 270 #endif // CHROME_BROWSER_MEMORY_TAB_MANAGER_DELEGATE_CHROMEOS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698