f4dd3711d1164ce6a442306615cac99119022215 |
|
12-May-2017 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #38242094: Activity manager oom adj computation seems broken This shouldn't change any behavior, but improve the reason we report for each process's oom_adj / proc state level. There are two significant things going on here: 1. We now consider a bump up in proc state to be just as significant as a change in oom_adj, and accordingly update the reason when this happens. Given how many proc stats we now have mapped to some of the single oom_adj levels, this matches your expectation to have the reason be why it is at that proc state and not just some random other thing at that level. 2. There is special handling of an app at the top state connecting to another app, deciding the actual state to apply at the end. This was not at that point updating the reason, so anything the top app is connected to would get the top state but myseriously have some other reason, looking very broken. We now propagate the reason over. Test: manual Change-Id: Idecbe206d73e7c4cbd989ef6faf3b1679e06c088
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
83b40f69bef4ba17bb63ac30d52f661a12d5b4f4 |
|
26-Apr-2017 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #36891897: Need to ensure foreground services can't... ...hide themselves The activity manager now keeps track of all apps that are running foreground services and builds a notification showing them to the user. We ensure they are shown to the user for at least 30 seconds (configurable). If foreground services are executed while the screen is off, their apps will be shown to the user for at least 30 seconds after the screen turns back on. While doing this I am also adding a new process state to distinguish between "important background" stuff that should bypass bg check vs. ones that don't. By default, these now no longer bypass bg check, which is really the expected (and documented) behavior. There is a new bind flag to allow them to bypass bg check, which is currently only used by the IME. Also add some new job scheduler commands that will be used to write new tests cases for jobs timing out. Bug: 36891897 Test: manual Change-Id: Ied3f7b56444254513fd776f06b88bc0e54704958
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
9484603c0fa738b67980c18b4abfd3505778ae74 |
|
01-Apr-2017 |
Dianne Hackborn <hackbod@google.com> |
Framework support to improve bg check CTS tests. (Finally) introduce a new ServiceConnection callback to tell you when the binding has died. This allows you to robustly have a weak service monitoring, and also is an easy way to find out about breakages due to app updates etc. Also clean up some debug output. Test: moved to own suite and ran them. Change-Id: I526cc00816c384fa9eb1312b92406f38085cbff9
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
0ef403e53e2762d077750dd0a50b73c2125cadb0 |
|
25-Jan-2017 |
Dianne Hackborn <hackbod@google.com> |
Add some new experiment constants for activity and power manager. Activity manager now has constants, starting with two: bg check and process limit. Power manager now has constants, starting with one: controlling disabling of wake locks from cached processes. Test: manual Change-Id: I05db42e2104e9d31584f85251412df2d5efb34b6
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
5614bf5a1ae4522dfc1a041f003cebc9b25c8b93 |
|
08-Nov-2016 |
Dianne Hackborn <hackbod@google.com> |
Move code for handling uid obs "cutoff" to activity manager To do this, I had to fix the PROCESS_STATE_NONEXISTENT constant to be the last value (instead of the special magical -1 value) so it semantically matches the public importance constants. I think this is better anyway. Also this fixes a big problem in the implementation, where we weren't keeping track of the last proc state per uid...! Duh. Test: manually ran testUidImportanceListener Change-Id: Ie3008f824446089840f896885e6033472abb065e
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
1e32e025ad5677ce4e3697ca026c2019fe0bd8e9 |
|
17-Sep-2016 |
Andrii Kulian <akulian@google.com> |
Move updating stack override config to ActivityStack Also added some multi-display TODOs. Change-Id: Iada3f84c4f57c9623fc7f116819d4e0267ebc32a
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
33eb07f5759b85a5617f8057d8a335019c7d24dd |
|
10-Jun-2016 |
Tim Murray <timmurray@google.com> |
Add new mode for SCHED_FIFO on UI and RenderThreads. Add a new mode, controlled by sys.use_fifo_ui property, that enables the top app's UI and RenderThread to be SCHED_FIFO. This eliminates almost all jank due to scheduling competition with non-UI critical threads. This mode may not be suitable for all devices. bug 24503801 Change-Id: I7b8a31830ad80f7efa00236928d5476998ed4e00
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
a49ad09c6f772fdbf829f85a6977fcde243c2b98 |
|
03-Mar-2016 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #27381069: Master tracking bug: NYC is Sluggish Have the activity manager us its own scheduling priority constants, so that the new relative comparisons it is doing will work out correctly. Change-Id: I7bd1e5a3178ea491117bc497f87e4b75c92e0bc8
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
fdcc4d4235c829a41b4d23043431bb8fa915a440 |
|
15-Oct-2015 |
Chong Zhang <chz@google.com> |
Assign different oom score to visible apps based on layer ordering. Pass oom score in kernel's full range [-1000,1000] to lmkd directly bug: 21411311 Change-Id: I0cab2aa46269a716ea613025d3b84fe7d04404bb
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
ab4bb9d1fec685dab0fce9232c9a3477fab356b3 |
|
06-Jun-2015 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #21571700: Need to be smarter about how foreground... ...services get out of app idle Introduce a new process state to even better distinguish foreground services from other states. Rework the INTERACTION reporting to usage stats to do it less when the screen is off -- require that an app sit in the foreground service or top activity state for at least 30 minutes before we consider it an interaction. Also eradicate a bunch of logging in package manager. Change-Id: I94249e67f9a9c62e9a92ae104710e6747b16327e
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
4870e9d5eba59fb257a87f97f1adf0b734cf48d3 |
|
09-Apr-2015 |
Dianne Hackborn <hackbod@google.com> |
More work on device idle mode and other power stuff. Add idle mode support to the alarm manager. Introduce a new concept of flags associated with alarms to tell the alarm manager how to treat the alarm -- they allow everything from the alarm that will bring us out of idle mode, to alarms that are allowed when idle or should also bring us out of idle. The standalone boolean is now also a flag. (Note there is currently no protection from user space setting the flags however it wants; I will be working on that in a follow-up change.) When in idle mode, the alarm manager pushes all alarms that shouldn't execute during that time over to a separate list that is not executed until out of idle. To help with this, I reworked a bit how Alarm objects are managed, so that when rebatching or moving between lists we don't have to allocated new objects but can just use the same existing instance. Also tweaked the sync manager to deal with idle mode, which currently just means doing the same thing as when low on storage -- turning off sync. Add new ACTION_CHARGING and ACTION_DISCHARGING broadcasts that apps can listen for to know when the device is actively charging and discharging. These are better than the old POWER_CONNECTED and POWER_DISCONNECTED ones because we only report charging when we actually see that there is enough power being provided to charge the battery (and will report discharging if there is not enough power). The job controller uses these new actions for scheduling jobs that want to run while plugged in. Removed the "stable charging" stuff while doing so, since the new charging state serves as an even better signal for that. Introduced two new process states: FOREGROUND_SERVICE and TOP_SLEEPING. This will allow us to treat foreground services specially (such as still allowing network access to them for background music playback) while not mixing them together with whatever happens to be the top activity while the device is asleep. Also some other small cleanup here and there. Change-Id: I7a9808b578bad6f50deb8e1baf919298512a0d3a
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
e23149f1555303940d212b742707518b7f9f84ab |
|
07-Mar-2015 |
Wale Ogunwale <ogunwale@google.com> |
Converted some AMS log points to use ActivityManagerDebugConfig. Change-Id: I0563bafd29ae0bbe596ed8c06fcc573b5ead50b7
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
c478cf5185337dcc2c54a074cf194d2d83689021 |
|
06-Jan-2015 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #18907544: Activity manager miscomputed high RAM for 64 bit No longer modify the base constants when computing oom adj values. Change-Id: I1fa1e0013d544ad026de6dffecc7598ef7399911
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
e207ffe01d3e9185f2cac9501354a5236abcedad |
|
10-Dec-2014 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix issue #18683980: questions on LMK memory changes" into lmp-mr1-dev
|
ae6cc8af2674909924fb18cb73763a110bee63dd |
|
10-Dec-2014 |
Dianne Hackborn <hackbod@google.com> |
Further work on issue #18640385: Add procstats test mode Tune sampling periods: - Lower minimum sample interval when in test mode. - Add a check when sampling pss to make sure this is at least 1 second since the pss changed, to reduce the amount of bad data (very small pss samples) that we see. Change-Id: I624a7d0480f3f6b22d229744e028d13a2c7b0e89
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
6466126ab0ac219229dfa3f5396cc03e9338b03b |
|
10-Dec-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #18683980: questions on LMK memory changes Getting the denominator right is kind of important. Change-Id: Iff02a0a95eccd1231042e4ea96011c8cee0fee02
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
1a4b5a4f02e7d8ff8ff645377d97e6062d36aeaa |
|
09-Dec-2014 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #18640385: Add procstats test mode You can now do "adb shell dumpsys procstats --start-testing" to enable high frequency pss sampling. Also improved the low on RAM mem reporting to separate out RAM from memtrack, in case the data we are getting from that is bad. And fixed meminfo --oom to work correctly again. Change-Id: I7af17eab110a82298bd7b0ce381f8fa5c96c1f6a
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
824aeab2db793e4d7af9a30f5a38d6ca4d1606bc |
|
26-Nov-2014 |
Dianne Hackborn <hackbod@google.com> |
Re-tune low memory killer params. Drop the minimums back down to their old values. Revert what I think was a mistake in bumping up the last two maximums to the same value as was being forced for 64 bit. Smarten the 64 bit adjustment to be relative to the values picked, rather than hard-coded. Change-Id: Ibee9625073469ad4722a1b6684c9fb2b9f0a4681
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
423c44dc9186bcf3e825a9876233e36f8e9121e3 |
|
04-Nov-2014 |
Andres Morales <anmorales@google.com> |
[DO NOT MERGE] Increase min free levels for cached processes on 64bit Requires less memory pressure to start killing cached processes. Change-Id: Ia02f5aee115535badc900330b9361f0099203e4f
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
ce09f5a53c8408d995c116a4430c000574d9875a |
|
11-Oct-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #17829949: Don't kill Bluetooth service... ...even in extreme low memory condition Bind to Bluetooth with BIND_IMPORTANT, so that it is allowed to go to a higher oom adj level. Fix some problems when this is done from a system or persistent process, where this would go to a level that is *too* high. Instead, introduce a new oom adj level for it that is right below persistent. Change-Id: I002bcc4accc36c8579c4cda161be7d2fba21ba17
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
3f16dd49e8fe33f64d290a41ad1cb32c8a333ce6 |
|
03-Oct-2014 |
Dianne Hackborn <hackbod@google.com> |
Maybe fix issue #17449495: Nakasi is pretty laggy/slow to do anything Tweak the oom tuning to raise everything by 50%. This is the same increase we did for Volantis; I am thinking that most of the issue there was not it being 64 bit, but it being tighter on RAM. From my testing, it looks like in user switching there was some paging going on with Nakasi, and with this change things seem to be better. We should probably revisit this for future work on RAM. It seems likely that a 64 bit device will need more RAM, so probably the value I am picking here is larger than we actually need for other devices. I think this is the safest change at this point though -- it leaves Volantis the same, where we already had tweaked it to address paging issues, raises it on Nakasi (to the same value as Volantis) where we seem to have paging issues, and on our other devices also raises it but those are generally not under memory pressure so this shouldn't really make a difference. Change-Id: Ib19394068734d322a015ed07370d9d4961877e4b
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
465fa3963534e41ead0dce1273b71fd50c58c973 |
|
14-Sep-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #16907799: Processes containing bound services... ...are killed over eagerly. When the current foreground activity is moving to the background, it was briefly going through the CACHED_ACTIVITY state before the correct LAST_ACTIVITY state, allowing its bound service processes to be killed (because they went in to the cached list). To solve this, as long as a process has stopping activities, it won't go lower than LAST_ACTIVITY. Also fixed a problem where we could put a process in CACHED_EMPTY instead of CACHED_ACTIVITY_CLIENT. There were a number of cases in the binding flow and also the client process state transitions where we would not correctly updateing the bound client activity state. And add some sanity code so that if a process hosting a service is killed, and a client process of that service is in the cached state, we kill the client process. This avoids situations where we can start thrashing around in the cached list because we are restarting process for no reason -- since they will just continue to be cached. Finally, tune the process LRU list to allow twice as many cached activity processes (from 8 to 16), so we can make better use of the RAM we have available these days. Change-Id: Ib0cdf78c321cbb035259fc9dd6ee27b5ba1f90c5
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
9d52f791b94bbf03739bdee4ccdd3ecb514c8eeb |
|
12-Sep-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #17377423: Frequently see 500ms latency on app open... ...even for apps in cache 64 bit devices are cool, so they get to use more RAM for their caches. Shhhh, don't tell 32 bit devices, they get terribly jealous. Change-Id: Iec9a0c43718a75530555bac50185658a682969aa
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
ecf1cda068c95c58d296d508d34706d659e4a1ae |
|
29-Aug-2014 |
Dianne Hackborn <hackbod@google.com> |
Debug issue #17310019: pause when launching settings Let's log! Change-Id: Icaf42d46aff6e74ee5fc98611dd77083a5d5052e
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
d908edd810dd22d8ec512a19c32637df464e9d0a |
|
13-Jun-2014 |
Colin Cross <ccross@android.com> |
ActivityManager: pass the main uid of the app to lmkd The uid and pid will be used to together to find any forked processes and kill them. Bug: 15313911 Change-Id: I2edb51527e5d1a977c0fad0e6c959c8438bb4be9
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|
49782e46c0eb85a25ae2abcf80880c48dbab5aea |
|
20-Dec-2013 |
Amith Yamasani <yamasani@google.com> |
am 9158825f: Move some system services to separate directories * commit '9158825f9c41869689d6b1786d7c7aa8bdd524ce': Move some system services to separate directories
|
9158825f9c41869689d6b1786d7c7aa8bdd524ce |
|
22-Nov-2013 |
Amith Yamasani <yamasani@google.com> |
Move some system services to separate directories Refactored the directory structure so that services can be optionally excluded. This is step 1. Will be followed by another change that makes it possible to remove services from the build. Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
|