Suren Baghdasaryan
441dc7c66b
lmkd/tests: Move tests into presubmit-large category to avoid timeouts am: c58acac201 am: baeb509b2e
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1969139
Change-Id: Ic7f3b601c89299404fec4be0281cd03cce48fffc
2022-02-02 19:55:20 +00:00
Suren Baghdasaryan
baeb509b2e
lmkd/tests: Move tests into presubmit-large category to avoid timeouts am: c58acac201
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1969139
Change-Id: I5adb706b3a6f70bdded22a11ca3eb3709573554e
2022-02-02 19:44:08 +00:00
Suren Baghdasaryan
c58acac201
lmkd/tests: Move tests into presubmit-large category to avoid timeouts
...
Since lmkd tests require time to build up memory pressure, they cause
timeouts when run as part of presubmits. Move them into the
presubmit-large category with higher timeout to prevent such failures.
Bug: 217478668
Bug: 203597692
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I690133c9f849da58b85884a7d7b463f5b518c12f
2022-02-02 09:27:47 -08:00
Suren Baghdasaryan
73bdbb628e
lmkd/tests: Add a test to check for lmkd process reaping capability am: 683d6cbc2d am: 4805030ba6
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1964686
Change-Id: Ib62946f204fd993e380b8a51d1af7bedba6035b2
2022-02-02 02:15:09 +00:00
Suren Baghdasaryan
4805030ba6
lmkd/tests: Add a test to check for lmkd process reaping capability am: 683d6cbc2d
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1964686
Change-Id: I87df80195eb51d156930e98d3ae862fe4a40cd12
2022-02-02 01:58:40 +00:00
Suren Baghdasaryan
683d6cbc2d
lmkd/tests: Add a test to check for lmkd process reaping capability
...
Add a test to verify a process killed by lmkd is being reaped when
kernel supports process_mrelease syscall.
Bug: 203597692
Test: atest LmkdTest
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Iac46f68c811e6e89378952ce1d29daf8a47514e2
2022-02-01 11:40:47 -08:00
Suren Baghdasaryan
85154e02b0
lmkd: Set task profiles to the entire process am: 2bdf7f0c74 am: a734b3bff1
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1956501
Change-Id: I4dbfdc5d49055ef386aa5aa4dc1354a41010744f
2022-01-25 05:46:16 +00:00
Suren Baghdasaryan
a734b3bff1
lmkd: Set task profiles to the entire process am: 2bdf7f0c74
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1956501
Change-Id: I752c7df4c1bc4fe9867f88da95081949eaaa51b3
2022-01-25 05:32:53 +00:00
Suren Baghdasaryan
2bdf7f0c74
lmkd: Set task profiles to the entire process
...
set_process_group_and_prio sets task profiles for each thread in the
process separately. This can be avoided by setting task profiles to
the entire process using its pid.
Bug: 215557553
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I9c1917172019a42809385f6c9c084b8cb343b520
2022-01-24 13:43:42 -08:00
Yi Kong
4185e681b1
Turn on AFDO for lmkd am: edd3325830 am: 7fb6b9cfb3
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1951041
Change-Id: Id74a11b3c1ddb9d374f76c10417d32051e08121a
2022-01-18 21:37:32 +00:00
Yi Kong
7fb6b9cfb3
Turn on AFDO for lmkd am: edd3325830
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1951041
Change-Id: Iedc6b4d34d9489a66807d791261b4fa909cfab02
2022-01-18 21:16:51 +00:00
Yi Kong
edd3325830
Turn on AFDO for lmkd
...
Enable PGO (profile guided optimisation) for better performance.
Bug: 195134194
Bug: 175205560
Test: presubmit
Change-Id: I97fb9945bfe9afa3396b850518fadaf7b9f38eaa
2022-01-17 07:36:59 +00:00
Suren Baghdasaryan
c871dc1afc
lmkd: Implement watchdog thread am: af1b0e0627 am: ac20c53b63
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1894200
Change-Id: I66fc6bd55480517fd1374e376476ffef174f6679
2022-01-06 22:24:04 +00:00
Suren Baghdasaryan
0fee08b289
lmkd: Use process_mrelease to reap the target process from a thread am: 7c3addb2a1 am: c4067fc9f2
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1904583
Change-Id: I224057073a3fd0c569eb5803eb2c56710b01fc77
2022-01-06 22:24:03 +00:00
Suren Baghdasaryan
ac20c53b63
lmkd: Implement watchdog thread am: af1b0e0627
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1894200
Change-Id: Ic96fb2bed49eb019d8163cd31671beb3176afd43
2022-01-06 22:02:58 +00:00
Suren Baghdasaryan
c4067fc9f2
lmkd: Use process_mrelease to reap the target process from a thread am: 7c3addb2a1
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1904583
Change-Id: I21a13a46890d2eee9ddd66cbeaec1c8f3e9317f4
2022-01-06 22:02:57 +00:00
Suren Baghdasaryan
af1b0e0627
lmkd: Implement watchdog thread
...
To detect lmkd being stuck on a syscall for prolonged period of time,
introduce a watchdog thread which gets set when lmkd starts handling of
events and is reset after handling is done. If it takes more than the
timeout period (2 sec) to handle an event, watchdog wakes up and kills
the least important process to prevent mounting memory pressure caused
by lmkd lockup. After a kill, watchdog will wait for the reset for
another timeout period and kill again. This repeats until lmkd unlocks
and resets the watchdog.
Bug: 201671997
Test: induce random sleep in lmkd main handler and observe watchdog kills
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I56a55834582e11c06cc6cf9da3bc7380e634b301
2022-01-06 18:14:25 +00:00
Suren Baghdasaryan
7c3addb2a1
lmkd: Use process_mrelease to reap the target process from a thread
...
process_mrelease syscall can be used to expedite memory release of
a process after it was killed. This allows memory to be released
without the target process being scheduled, therefore does not depend
on target's priority or the CPU it's running on.
However process_mrelease syscall can take considerable time. Blocking
lmkd main thread during that time can cause memory pressure events
being missed while lmkd is busy reaping previous target's memory.
For this reason reaping should be done in a separate thread. This way
lmkd main thread can keep monitoring memory pressure while memory is
being released.
Introduce Reaper class which maintains a pool of threads to perform
process killing and reaping. The main thread submits a request to the
Reaper to kill and reap the process without blocking. If all the threads
in the pool are busy at the time the next kill is needed, the kill is
performed by the main thread without reaping.
Bug: 130172058
Bug: 189803002
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: If7b10fdd1838bdfeea3fed3031565feffe0b52be
2022-01-06 18:14:14 +00:00
Suren Baghdasaryan
521ecf770e
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 -s ours am: 2b9d78486a -s ours
...
am skip reason: Merged-In Iba34fc719a18d58b890549c7415bec869d471901 with SHA-1 fcb9cb6de4 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15738844
Change-Id: I64fbffc972ef685cb42314ae9c272165b7735eae
2021-12-22 20:51:46 +00:00
Suren Baghdasaryan
4056ed3b29
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 -s ours am: e01b07d4a7 -s ours
...
am skip reason: Merged-In Ia48fd51eab126d307a1604530b642e86cf250688 with SHA-1 e7d82ee7e7 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15738843
Change-Id: I05a07bc6ccd42c8cb809bfed6863d2992ae97371
2021-12-22 20:51:45 +00:00
Suren Baghdasaryan
2b9d78486a
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 -s ours
...
am skip reason: Merged-In Iba34fc719a18d58b890549c7415bec869d471901 with SHA-1 fcb9cb6de4 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15738844
Change-Id: Ic644b480d12e69b2a4efa4625c3c30dcbac4f616
2021-12-22 20:26:03 +00:00
Suren Baghdasaryan
e01b07d4a7
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 -s ours
...
am skip reason: Merged-In Ia48fd51eab126d307a1604530b642e86cf250688 with SHA-1 e7d82ee7e7 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15738843
Change-Id: I2379d168b62945e550bf521f8100454b8cf6a3f2
2021-12-22 20:26:00 +00:00
liuhailong
986595819d
lmkd: Fix lowmem_minfree out of bounds am: cf8af501dc am: 53df06cdf1
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1908669
Change-Id: I203fb9b1d0719c4fb8fccda44d48dc468b3927cf
2021-12-07 03:07:50 +00:00
liuhailong
53df06cdf1
lmkd: Fix lowmem_minfree out of bounds am: cf8af501dc
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1908669
Change-Id: Ie928b2d3c3882dafcf591a0487eb73c0d3b0b73a
2021-12-07 02:52:13 +00:00
liuhailong
cf8af501dc
lmkd: Fix lowmem_minfree out of bounds
...
lmkd daemon launches before system_server. If lowmem_targets_size
does not initialize by system_server, the value will be zero.
Before system_server starts lmkd receives a psi event
and debug_process_killing on, the lmkd crashes here.
Bug: 209090314
Signed-off-by: liuhailong <liuhailong@oppo.com>
Change-Id: I0736a882ed1ff5eee2b07676ae590a2cb2a7721c
2021-12-04 17:59:24 +08:00
Suren Baghdasaryan
ac36e3a50a
lmkd: fix low swap threshold failing to update after reinit am: 6e6d14b387 am: 07de899509 am: 6d2d6d4d62
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1874517
Change-Id: I5efeb150d303d81fbd3575171bb6cef40a278505
2021-10-28 23:30:18 +00:00
Suren Baghdasaryan
6d2d6d4d62
lmkd: fix low swap threshold failing to update after reinit am: 6e6d14b387 am: 07de899509
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1874517
Change-Id: I1527091b5889d57c237cbaccea373effc2ee94a6
2021-10-28 23:18:38 +00:00
Suren Baghdasaryan
07de899509
lmkd: fix low swap threshold failing to update after reinit am: 6e6d14b387
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1874517
Change-Id: I2d5854cca756b90ac16b941628b35fe2a32ec802
2021-10-28 23:00:59 +00:00
Suren Baghdasaryan
6e6d14b387
lmkd: fix low swap threshold failing to update after reinit
...
lmkd calculates low swap threshold using total available swap and
ro.lmk.swap_free_low_percentage property. A wrong assumption is made that
both these values are constant and therefore the threshold can be
calculated once and reused later. However ro.lmk.swap_free_low_percentage
can be changed by the user and lmkd --reinit issued to reapply new
configuration. If that happens low swap threshold will not be updated.
Fix this by calculating the threshold whenever it is used. The overhead
of that calculation is negligible.
Bug: 203161607
Test: setprop ro.lmk.swap_free_low_percentage <new value>; lmkd --reinit
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Idff50655a75d006ea86d9ab10ca54c375c4bea46
2021-10-28 13:30:08 -07:00
Suren Baghdasaryan
f269e20364
Replace writepid with task_profiles command for cgroup migration am: 1938f90eb8 am: 95b23108fa am: 9e0fe78675
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1740140
Change-Id: I72c4b517729b76c66090c86f2824773055036118
2021-10-15 18:44:28 +00:00
Suren Baghdasaryan
9e0fe78675
Replace writepid with task_profiles command for cgroup migration am: 1938f90eb8 am: 95b23108fa
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1740140
Change-Id: I0b4f462cc61e8c4b6388edd239ab417a86ca8921
2021-10-15 18:30:04 +00:00
Suren Baghdasaryan
95b23108fa
Replace writepid with task_profiles command for cgroup migration am: 1938f90eb8
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1740140
Change-Id: I0762beb6cf6e7a081956938335f85c91f4716bac
2021-10-15 18:18:07 +00:00
Suren Baghdasaryan
1938f90eb8
Replace writepid with task_profiles command for cgroup migration
...
writepid command usage to join a cgroup has been deprecated in favor
of a more flexible approach using task_profiles. This way cgroup path
is not hardcoded and cgroup changes can be easily made. Replace
writepid with task_profiles command to migrate between cgroups.
Bug: 191283136
Test: build and boot
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I594a5fc5e988f812237bd226aaecefa5f1159d2d
2021-10-15 16:40:18 +00:00
Wei Wang
cdfda035f2
[automerger skipped] lmkd: move to foreground cpuset before killing am: e80774f4b7 -s ours
...
am skip reason: Merged-In Id475625e0d892fb7111a2cf054d1b57d17003d5a with SHA-1 730e7a9248 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15956952
Change-Id: I56b16242e84de7041d06fca9f434e9765b828e5f
2021-10-01 20:34:31 +00:00
Wei Wang
efff2cd14b
lmkd: move to foreground cpuset before killing am: 730e7a9248 am: c2fdae89e4 am: 7cc53280b3
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1842588
Change-Id: Ieee9b828bd2bf1b754a039284db6775fe8f9c9c5
2021-10-01 18:15:26 +00:00
Wei Wang
7cc53280b3
lmkd: move to foreground cpuset before killing am: 730e7a9248 am: c2fdae89e4
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1842588
Change-Id: Ibbc084bafb4b4cbc5ec870076d2aa35238af799d
2021-10-01 18:06:29 +00:00
Wei Wang
c2fdae89e4
lmkd: move to foreground cpuset before killing am: 730e7a9248
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1842588
Change-Id: I167412b9121920a1efea698a45447c1bd507f671
2021-10-01 17:58:01 +00:00
Wei Wang
e80774f4b7
lmkd: move to foreground cpuset before killing
...
Test: Build and boot
Bug: 199797672
Signed-off-by: Wei Wang <wvw@google.com>
Merged-In: Id475625e0d892fb7111a2cf054d1b57d17003d5a
Change-Id: Id475625e0d892fb7111a2cf054d1b57d17003d5a
(cherry picked from commit 730e7a9248 )
2021-09-30 23:25:34 -07:00
Wei Wang
730e7a9248
lmkd: move to foreground cpuset before killing
...
Test: Build and boot
Bug: 199797672
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: Id475625e0d892fb7111a2cf054d1b57d17003d5a
2021-09-30 23:24:11 -07:00
Wei Wang
f59352a4d3
[automerger skipped] lmkd: use fd cache for cgroup migration am: 328e612f1b -s ours
...
am skip reason: Merged-In Ie7a9eb9676c58309f1407c5f8cc59b302f107d38 with SHA-1 0162e0361f is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15881156
Change-Id: I46b16bb312656e4c4f30d700f4ec4ff53cd0898e
2021-09-22 22:19:41 +00:00
Wei Wang
d1165a4975
[automerger skipped] lmkd: migrate process to FOREGROUND sched group before kill am: 90f3c9e5c6 -s ours
...
am skip reason: skipped by user wvw
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15828583
Change-Id: I315aeaecde8646dbcb7e5ee13e919ccdc0bcc331
2021-09-22 22:19:39 +00:00
Wei Wang
7bfd31e6e3
lmkd: use fd cache for cgroup migration am: 0162e0361f am: dbb9a69dc6 am: 022fa421c6
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1833054
Change-Id: I0405e4cf84706d15bf97fda53e8f5711943ca9f5
2021-09-22 18:59:48 +00:00
Wei Wang
022fa421c6
lmkd: use fd cache for cgroup migration am: 0162e0361f am: dbb9a69dc6
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1833054
Change-Id: I6e90cb69fb9e446239212737f8ef2643699b1360
2021-09-22 18:38:47 +00:00
Wei Wang
328e612f1b
lmkd: use fd cache for cgroup migration
...
Test: Build
Bug: 199797672
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: Ie7a9eb9676c58309f1407c5f8cc59b302f107d38
Merged-In: Ie7a9eb9676c58309f1407c5f8cc59b302f107d38
(cherry picked from commit 0162e0361f )
2021-09-22 18:35:19 +00:00
Wei Wang
dbb9a69dc6
lmkd: use fd cache for cgroup migration am: 0162e0361f
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1833054
Change-Id: Ie70f8800acdef24ccf8731215ce1b1cae8e01539
2021-09-22 18:27:25 +00:00
Wei Wang
90f3c9e5c6
lmkd: migrate process to FOREGROUND sched group before kill
...
BG group may have settings such as cpu.shares impacting reclaim
performance. Let us migrate task to foreground sched group similarly to
cpuset group.
Test: Build
Bug: 199797672
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: I75ee9f3486a2c76e65267a98e39edff96a5e1673
(cherry picked from commit 0195bcdba7 )
2021-09-21 14:54:44 -07:00
Wei Wang
0162e0361f
lmkd: use fd cache for cgroup migration
...
Test: Build
Bug: 199797672
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: Ie7a9eb9676c58309f1407c5f8cc59b302f107d38
2021-09-21 14:38:49 -07:00
Suren Baghdasaryan
d31d0d1eb2
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: fcb9cb6de4 -s ours
...
am skip reason: Merged-In Iba34fc719a18d58b890549c7415bec869d471901 with SHA-1 0e64eadc21 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15798712
Change-Id: I414d3c898dd7503119e37f9e7ad2a601c51cbbba
2021-09-15 23:18:00 +00:00
Suren Baghdasaryan
d941a3e7bb
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: e7d82ee7e7 -s ours
...
am skip reason: Merged-In Ia48fd51eab126d307a1604530b642e86cf250688 with SHA-1 d0a800402c is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15788312
Change-Id: Ice7ea4aac70782659cc2009cea1e6614b13d85a9
2021-09-15 23:17:59 +00:00
Wei Wang
193b84cd38
lmkd: migrate process to FOREGROUND sched group before kill am: 0195bcdba7 am: a95efc0941 am: 50bf1dc40c
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1825954
Change-Id: I73a62f67750c64f87739d64ea0ba3f9010b94f70
2021-09-14 15:13:34 +00:00