Commit Graph

232 Commits

Author SHA1 Message Date
Xin Li 4f97674892 DO NOT MERGE - Skip pi-platform-release (PPRL.190205.001) into stage-aosp-master
Bug: 124234733
Change-Id: I10ec04a9bb7e61400796db3d9993ac870b792c99
2019-02-12 16:36:41 -08:00
android-build-team Robot 8600b07f2a Snap for 5180536 from cddcc0d9cf7cbba53e54d67455737a3900ae5d9f to pi-platform-release
Change-Id: Ie01971579962cce36d3170df9c1cb09f8b152520
2019-02-09 02:22:24 +00:00
Greg Kaiser c5296202ff Merge "lmdk: Remove redundant 'if' check"
am: 6cb668b992

Change-Id: I119eac076221143d673867e2ed54e4c9cc0c2e73
2019-02-04 12:27:27 -08:00
Greg Kaiser 584f3fd35f lmdk: Remove redundant 'if' check
We already know that "polling" must be non-zero at this point,
because it hasn't been modified since our check on line 1960.
So we remove this check for code clarity.

Test: TreeHugger
Change-Id: I069d9fd0eef70748a5333733dd0518d1ac8021b7
2019-02-04 08:50:10 -08:00
Suren Baghdasaryan 627180e7c1 Merge "lmkd: Add support for psi monitors"
am: bec585440c

Change-Id: I68f6210177b96083990631da6d41795c948aeae5
2019-02-01 11:11:04 -08:00
Suren Baghdasaryan 55e3150842 lmkd: Add support for psi monitors
With new psi monitor support in the kernel lmkd can use it to register
custom pressure levels. Add lmkd support for psi monitors when they are
provided by the kernel and use them by default. When kernel does not
support psi lmkd will fall back to vmpressure usage.
Add ability to poll memory status after the initial psi event is triggered
because kernel throttles psi memory pressure events to one per PSI tracking
window (currently set to 1sec). Current implementation polls every 200ms
for 1sec duration after the initial event is triggered.
If ro.lmk.use_psi is set to false psi logic will be disabled even when psi
is supported in kernel.

Bug: 111308141
Test: lmkd_unit_test
Change-Id: I685774b176f393bab7412161773f5c9af51e0163
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-02-01 18:40:32 +00:00
Suren Baghdasaryan c750961a19 Merge "libpsi: initial revision"
am: bb405bf986

Change-Id: I7dde222de933f7f52d4d7e09a6d3806d88e23a69
2019-01-29 21:04:17 -08:00
Tim Murray d6348dfa08 libpsi: initial revision
New library to create, register and destroy PSI monitors in a consistent
way with lmkd.

Test: used within lmkd
Bug: 111308141
Change-Id: If243a97f178e90fe41e2de90c7b858ba82440279
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-01-30 04:47:28 +00:00
Suren Baghdasaryan 86f94e0e4a [automerger skipped] DO NOT MERGE: Revert "Revert "Add dependencies on libprocessgroup for sched_policy users""
am: 9491078300 -s ours
am skip reason: subject contains skip directive

Change-Id: I6a090381ab3764d9ea2a5bed1de39aef1872b6a7
2019-01-25 09:21:34 -08:00
Suren Baghdasaryan de92718882 DO NOT MERGE: Revert "Revert "Add dependencies on libprocessgroup for sched_policy users""
This reverts commit 1bef8c550c6c9118969a93f14d9c5933cb7b2811.

Reason for revert: AOSP is fixed with new vendor image

Change-Id: Ib341ac80e2f88c13a7815a490ea2d9422ebdf55f
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-01-25 16:49:18 +00:00
Suren Baghdasaryan 87cbcdc3fe [automerger skipped] DO NOT MERGE: Revert "Add libprocessgroup into VNDK"
am: c4a02d25a9 -s ours
am skip reason: subject contains skip directive

Change-Id: I9131c17d5fc372db05699f1aca5138fba1237c7a
2019-01-23 23:08:47 -08:00
Suren Baghdasaryan efeeaafc9b DO NOT MERGE: Revert "Add dependencies on libprocessgroup for sched_policy users"
This reverts commit 02843339f998f05c712549658c9f8f8bc14ff57d.

Reason for revert: Broke AOSP

Change-Id: I62f91c0adf440b5da0a145862b04dd27a7016faf
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-01-23 20:43:28 -08:00
Suren Baghdasaryan 8d13df7d38 Merge changes from topic "move sched_policy functions"
am: ca50ee91b5

Change-Id: I92310f7dd60384b95c056c98cdc616857ebcd1ec
2019-01-22 13:03:07 -08:00
Suren Baghdasaryan fb99b0a5f9 Add dependencies on libprocessgroup for sched_policy users
After moving sched_policy functions into libprocessgroup its users require
additional dependency and inclusion of sched_policy_ctrl.h header.

Exempt-From-Owner-Approval: janitorial

Bug: 111307099
Test: builds, boots

Merged-In: Icc052080e1bce46ce06f7264446950cab0490a95
Change-Id: Icc052080e1bce46ce06f7264446950cab0490a95
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-01-22 18:19:45 +00:00
Wei Wang 2b34702a8b Merge "lmkd: bump process priority and set to FOREGROUND group before kill"
am: 3f4b005022

Change-Id: Ib77699153224bcc95c0929bc59361702c50bce94
2019-01-15 19:13:21 -08:00
Wei Wang 8c55f2b664 Merge "lmkd: bump process priority and set to FOREGROUND group before kill" 2019-01-16 03:06:21 +00:00
Tom Cherry ef9cbe71b2 Merge "lmkd: add missing libcutils library to test"
am: 173a02b439

Change-Id: Ib3dc6e124cfc129145e43ae806de73061652cb08
2019-01-15 17:03:49 -08:00
Wei Wang f1ee2e1505 lmkd: bump process priority and set to FOREGROUND group before kill
This should help speed up reclaim memory.

Bug: 118468011
Test: run mem-pressure with lmkd
Change-Id: Iae7aa35483eb0e8bbeccaa425559c6021c845ee1
2019-01-15 14:50:19 -08:00
Tom Cherry 4a28d2a270 lmkd: add missing libcutils library to test
lmkd's test depends on the socket_local_client() function from
libcutils, but since liblog also exposes this symbol weakly, that is
the symbol that gets used instead of the intended libcutil's copy of
the symbol.

Test: build
Change-Id: I294fa157a7f50881bf6360922419976eb1ee3ac7
2019-01-15 14:14:20 -08:00
Jim Blackler 350fecb560 Merge "Add start time to LmkKillOccurred"
am: 34f55bd45a

Change-Id: I912af2f3ac71fda3d949deb5189ff1834340f08f
2019-01-09 00:57:22 -08:00
Jim Blackler f52bcb9c8f Add start time to LmkKillOccurred
This is to measure an application's behavior with respect to being LMKed
(the longer an app lives before being LMKed, the better).

Bug: 119854389
Test: Manual
Change-Id: I4ef6433391c8758626334731d2b5de038e4468ae
Merged-In: I4ef6433391c8758626334731d2b5de038e4468ae
(cherry picked from I4ef6433391c8758626334731d2b5de038e4468ae)
2019-01-04 11:36:54 +00:00
Xin Li d45d6e6326 [automerger skipped] DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master
am: 2f2f638fdf  -s ours

Change-Id: Ieb3bb5fae81eebeca7596ca4901c2dc77ec8733e
2018-12-13 11:26:27 -08:00
Xin Li 85e4ce5ac7 DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master
Bug: 120502534
Change-Id: Id4f4f66ffb8104d953957f1c44dff6f549a387bb
2018-12-11 14:46:12 -08:00
Xin Li 6778a6c07b DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into stage-aosp-master
Bug: 120502534
Change-Id: I0ab5735530d24f669cc43c961cf2118427b32a7b
2018-12-11 20:23:55 +00:00
Bill Rassieur 6bb974bc2a Merge PQ1A.181205.006 from Pi-QPR1-Release into ToT for Pi-Platform release.\n\nBUG: 120448245
Change-Id: Ia66dd2a90e074d2fcb0dbaeb424031a41752dd03
2018-12-04 17:00:05 +00:00
Suren Baghdasaryan 68fe0cbc93 Merge "lmkd: Cleanup unused code for killing processes in bulk"
am: d04b38b0e5

Change-Id: Icbbc888b5a2049a94e55e48eaa9510981c114ebf
2018-10-29 13:31:26 -07:00
Suren Baghdasaryan f12fdbe1d6 Merge "lmkd: retune rate at which processes are killed"
am: d5eaeffcf3

Change-Id: I5012c959668b9bf2f6ea055e6186be551bf5db20
2018-10-29 13:30:42 -07:00
Suren Baghdasaryan 85c31b57c4 lmkd: Cleanup unused code for killing processes in bulk
find_and_kill_processes() does not kill multiple processes at a time
anymore. Remove support for bulk process killing.

Change-Id: Id09132a9cebe44589a1a3ebcbff800a16fa56557
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-10-29 16:20:50 +00:00
Tim Murray a79ec0f5bf lmkd: retune rate at which processes are killed
Kill a single process at a time and try to wait up to 100ms for
that process to reclaim memory before triggering another kill.

Test: boots, works
bug: 116877958
Change-Id: I6775d0534b3e3728c04389d3eae1a00e3cbf9f27
2018-10-29 16:20:29 +00:00
Tim Murray 9752ee8b29 DO NOT MERGE: lmkd: retune rate at which processes are killed
Kill a single process at a time and try to wait up to 100ms for
that process to reclaim memory before triggering another kill.

Test: boots, works
bug: 116877958
Change-Id: I6775d0534b3e3728c04389d3eae1a00e3cbf9f27
(cherry picked from commit afb3a15f39e73978c071a58d3466993293c6d3b1)
2018-10-26 20:57:25 +00:00
Suren Baghdasaryan d4dbf08947 lmkd: rate-limit and cleanup failed kill reports
Excessive number of failed kill reports when lmkd can't find an eligible
process to kill or frees not enough memory pollutes logs and bugreports.
Cleanup kill reports to remove duplicate information and rate limit failed
kill attempts at 1 report per sec. The number of suppressed failed kills
will be reported in the next lmkd report.

Bug: 113864581
Test: Verified using lmkd_unit_test
Change-Id: I67fa1fec97613f136c7582115edcbc56b1503c9c
Merged-In: I67fa1fec97613f136c7582115edcbc56b1503c9c
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
(cherry picked from commit d6cbf3f41d7cb54e7dc62f4c29f7a7cba05aa28b)
2018-10-26 20:57:23 +00:00
Tim Murray 6a9c142f1b DO NOT MERGE: lmkd: retune rate at which processes are killed
Kill a single process at a time and try to wait up to 100ms for
that process to reclaim memory before triggering another kill.

Test: boots, works
bug: 116877958
Change-Id: I6775d0534b3e3728c04389d3eae1a00e3cbf9f27
2018-10-26 13:21:17 -07:00
Bill Yi a6426eb63b [automerger skipped] Merge pie-platform-release to aosp-master - DO NOT MERGE
am: d4e20cd0f9  -s ours

Change-Id: Ie17a382505e1b8f6fb135a415f6fa8c9671354e4
2018-10-24 16:38:21 -07:00
Bill Yi 5b3b22bbc2 Merge pie-platform-release to aosp-master - DO NOT MERGE
Change-Id: I413bb086f5ff064430c061bdd5d0fe3d02925304
2018-10-24 14:48:45 -07:00
Suren Baghdasaryan 301581b8af Merge "lmkd: Add command to get number of kills"
am: a1c684be4f

Change-Id: I0e22129a27765cacb7840a3c60b95b20c9d0d42d
2018-10-24 14:45:11 -07:00
Suren Baghdasaryan a7394ea37f lmkd: Add command to get number of kills
Intrduce LMK_GETKILLCNT command for ActivityManager to get the number of
kills from lmkd.

Bug: 117126077
Test: used lmkd_unit_test to verify correct reporting
Change-Id: I09c720a7176b4df95efc544177cd2694f8d791be
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-10-24 17:18:32 +00:00
Bill Yi 850ee989e4 Merge pi-platform-release to stage-aosp-master - DO NOT MERGE
Change-Id: Ibdbef72fcbee2eb6688f526e353f7244b93df734
2018-10-24 09:18:47 -07:00
Srinivas Paladugu bab828217f Merge "lmkd: increase the soft limit for keyboard"
am: 618be4c225

Change-Id: Ia475bcd0feaaeaf0ea9cb2a8af9bc12e020532fd
2018-10-16 13:31:00 -07:00
Srinivas Paladugu a453f0b9ee lmkd: increase the soft limit for keyboard
lmkd sets the soft limit parameters for Go devices.
The limit for apps in the perceptible group is set to 16M.
However this limit is not sufficient for the keyboard app to
prevent pages from being re-claimed quickly. The mem usage of
the keyboard app is around 55M most cases with some occasional
spikes to 70-80M. Increasing the limit to 64M improves the warm
startup latency for keyboard. It is still lower than the limits
set for foreground and visible apps.

Test: Go device (1G)
Bug: 117517805
Merged-In: Id50e49327cfd76126e41ef6503971845f29196af
Change-Id: Id50e49327cfd76126e41ef6503971845f29196af
2018-10-16 18:58:01 +00:00
Suren Baghdasaryan fee8b42c10 Merge "lmkd: Implement pid purge command to clear old pids when zygote restarts"
am: 79e5b550ce

Change-Id: I054cc48a4f9106f0a4e9f313bf997facac9c1b1e
2018-10-15 13:07:28 -07:00
TreeHugger Robot cc7862d9b7 Merge "Read memory stats from /proc/pid/stat file." into pi-dev 2018-10-15 19:24:44 +00:00
Suren Baghdasaryan 83df0088a3 lmkd: Implement pid purge command to clear old pids when zygote restarts
lmkd keeps a list of pids registered by ActivityManager, however on rare
occasions when framework restarts and lmkd survives that list has to be
purged. Implement a command that can be used to clear the pid list.

Bug: 116801366
Test: locally by killing zygote process
Change-Id: I71d6012f86bb83a73edd5b687e05a0848e0569b1
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-10-15 16:22:17 +00:00
Suren Baghdasaryan fd42ffb457 Merge "lmkd: Fix an invalid access to a pointer after it's freed"
am: 1f149d8d2a

Change-Id: I3bd979baf13d574b0f3f6eef1236512d9342640e
2018-10-12 14:39:28 -07:00
Rajeev Kumar d128423ee4 Read memory stats from /proc/pid/stat file.
(cherry pick from commit 0301683e49ab255769b15469487feaab3466167a)
Bug: 117333340
Test: Manual testing using alloc-stress tool
Change-Id: Ie555933aafa6a6b7aa1dbf5518ebe804376e0afd
Merged-In: Ie555933aafa6a6b7aa1dbf5518ebe804376e0afd
2018-10-12 21:28:50 +00:00
Suren Baghdasaryan 8b00c6d79a lmkd: Fix an invalid access to a pointer after it's freed
pid_remove() frees a structure representing registered process and the
pointer can't be used anymore. This change fixes an instance when pointer
was used after it was freed. pid_remove() is moved to the end of the
function and comments are added to prevent similar situation in the future.

Bug: 117625315

Change-Id: I6a922952a31232497b3f9caf87d5a21bd402db94
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-10-12 11:28:33 -07:00
Rajeev Kumar 2b07944e79 Read memory stats from /proc/pid/stat file.
(cherry pick from commit 0301683e49ab255769b15469487feaab3466167a)
Bug: 117333340
Test: Manual testing using alloc-stress tool
Merged-In: Ie555933aafa6a6b7aa1dbf5518ebe804376e0afd
Change-Id: Ie555933aafa6a6b7aa1dbf5518ebe804376e0afd
2018-10-10 18:20:10 -07:00
Rajeev Kumar 6a4ee28b85 [automerger skipped] Merge "Read memory stats from /proc/pid/stat file."
am: d936e628a3  -s ours

Change-Id: Ifcc16f31ad7dc9b9a6f7071dbbb5741fc96c064d
2018-10-10 17:50:52 -07:00
Rajeev Kumar 2534d2e54d Read memory stats from /proc/pid/stat file.
(cherry pick from commit 0301683e49ab255769b15469487feaab3466167a)
Bug: 117333340
Test: Manual testing using alloc-stress tool
Merged-In: Ie555933aafa6a6b7aa1dbf5518ebe804376e0afd
Change-Id: Ie555933aafa6a6b7aa1dbf5518ebe804376e0afd
2018-10-10 22:23:25 +00:00
Suren Baghdasaryan 08df7871d3 lmkd: Implement pid purge command to clear old pids when zygote restarts
lmkd keeps a list of pids registered by ActivityManager, however on rare
occasions when framework restarts and lmkd survives that list has to be
purged. Implement a command that can be used to clear the pid list.

Bug: 116801366
Test: locally by killing zygote process
Change-Id: I71d6012f86bb83a73edd5b687e05a0848e0569b1
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-10-10 22:11:23 +00:00
Suren Baghdasaryan 16e959bc67 lmkd: rate-limit and cleanup failed kill reports
Excessive number of failed kill reports when lmkd can't find an eligible
process to kill or frees not enough memory pollutes logs and bugreports.
Cleanup kill reports to remove duplicate information and rate limit failed
kill attempts at 1 report per sec. The number of suppressed failed kills
will be reported in the next lmkd report.

Bug: 113864581
Test: Verified using lmkd_unit_test
Change-Id: I67fa1fec97613f136c7582115edcbc56b1503c9c
Merged-In: I67fa1fec97613f136c7582115edcbc56b1503c9c
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-09-07 18:27:17 -07:00