Suren Baghdasaryan
d385f7ec5c
lmkd: Set task profiles to the entire process am: 2bdf7f0c74 am: a734b3bff1 am: 85154e02b0 am: 3fcdbaaeab
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1956501
Change-Id: I2d05287f66408b2cead68ca92b51c63904e8a6aa
2022-01-25 06:15:25 +00:00
Suren Baghdasaryan
3fcdbaaeab
lmkd: Set task profiles to the entire process am: 2bdf7f0c74 am: a734b3bff1 am: 85154e02b0
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1956501
Change-Id: I824f5e7303b33eb4bc132f0e1237fde462d600a6
2022-01-25 06:01:54 +00: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
b8cdb6ac91
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
Merged-In: I9c1917172019a42809385f6c9c084b8cb343b520
2022-01-25 05:17:00 +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
d5a3026a3c
Turn on AFDO for lmkd am: edd3325830 am: 7fb6b9cfb3 am: 4185e681b1 am: 467ea66616
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1951041
Change-Id: Id94da60288d145bee04644efb2c0508fa4201b11
2022-01-18 22:12:37 +00:00
Yi Kong
467ea66616
Turn on AFDO for lmkd am: edd3325830 am: 7fb6b9cfb3 am: 4185e681b1
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1951041
Change-Id: Ic8cb804c2b32a0f75d29ae30f14981de7d5962ed
2022-01-18 21:54:23 +00: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
e28853cc7c
lmkd: Implement watchdog thread am: af1b0e0627 am: ac20c53b63 am: c871dc1afc am: bdb7ccf532
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1894200
Change-Id: If69f77981ae78431b8b3c078ee01e13314b7f85e
2022-01-06 22:52:50 +00:00
Suren Baghdasaryan
9a3d1b6515
lmkd: Use process_mrelease to reap the target process from a thread am: 7c3addb2a1 am: c4067fc9f2 am: 0fee08b289 am: 4253f17b9d
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1904583
Change-Id: I1ea8615d891415d005efc8cb70b2c26b36da9f92
2022-01-06 22:52:48 +00:00
Suren Baghdasaryan
bdb7ccf532
lmkd: Implement watchdog thread am: af1b0e0627 am: ac20c53b63 am: c871dc1afc
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1894200
Change-Id: I13e24f1b7dfe92359d56344e133843f0f64cec4e
2022-01-06 22:39:07 +00:00
Suren Baghdasaryan
4253f17b9d
lmkd: Use process_mrelease to reap the target process from a thread am: 7c3addb2a1 am: c4067fc9f2 am: 0fee08b289
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1904583
Change-Id: I24dc3a14edb46028b1768b7e5e9244a48559216d
2022-01-06 22:39:06 +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
3f691834b7
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 -s ours am: 2b9d78486a -s ours am: 521ecf770e -s ours am: 57cdc19e34 -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: I2a1fc6cc80dcdbebea5986be2b13cb71bfcc7872
2021-12-22 21:05:10 +00:00
Suren Baghdasaryan
cff4f589b3
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 -s ours am: e01b07d4a7 -s ours am: 4056ed3b29 -s ours am: 9a5d09e4f7 -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: I8e2c1922e3f6e021a5fe9a165b6495d96bdcbb66
2021-12-22 21:05:09 +00:00
Suren Baghdasaryan
57cdc19e34
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 -s ours am: 2b9d78486a -s ours am: 521ecf770e -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: Ic8216d7b3cbf98eb4f3d8629056d177b8a4e4224
2021-12-22 21:01:50 +00:00
Suren Baghdasaryan
9a5d09e4f7
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 -s ours am: e01b07d4a7 -s ours am: 4056ed3b29 -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: I91db060dc84b1d403c21f8cff24b4f0c32d01ab4
2021-12-22 21:01:49 +00:00
Suren Baghdasaryan
7482bdf080
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 -s ours am: 2b9d78486a -s ours am: 931bf0954f -s ours am: 3ffa7f5391 -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: Iab4226e82164d412b578b7af13590298d83dda15
2021-12-22 20:58:05 +00:00
Suren Baghdasaryan
f924fe90f8
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 -s ours am: e01b07d4a7 -s ours am: 4fe0d250e8 -s ours am: 6cba2d654c -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: Ia32fa33e11e496f83c4c159a81ff9a64fcd97cbf
2021-12-22 20:58:05 +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
3ffa7f5391
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 -s ours am: 2b9d78486a -s ours am: 931bf0954f -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: I8b849ade888210c334e1e1bdc783c906094d520d
2021-12-22 20:34:06 +00:00
Suren Baghdasaryan
6cba2d654c
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 -s ours am: e01b07d4a7 -s ours am: 4fe0d250e8 -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: I5e0b25a603424ac0e2c22839704c212e0b6a0133
2021-12-22 20:34:05 +00:00
Suren Baghdasaryan
931bf0954f
[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: Ic3c8969383c707767e286ba25cfb15f747aa5a7b
2021-12-22 20:29:15 +00:00
Suren Baghdasaryan
4fe0d250e8
[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: Ic9aa0f37cb0f0b8d6bb8440a921965030f3a9fbc
2021-12-22 20:29:13 +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
Suren Baghdasaryan
256a5f2c0b
[automerger skipped] lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991 am: 54e25eb877 -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: Iee35860de1a308219f97439ea514f3a89bedc60f
2021-12-22 10:03:13 +00:00
Suren Baghdasaryan
f9fc611522
[automerger skipped] lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8 am: 1277a130db -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: I5d00923862f7d00b62d4594afde3ba8d4eaf1e61
2021-12-22 10:03:12 +00:00
Suren Baghdasaryan
54e25eb877
lmkd: Do not re-initialize lmkd when persistent properties are loaded am: aced711991
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15738844
Change-Id: I3082e77c9699065bf2b7f1622ec3eb6f143b85aa
2021-12-22 09:42:30 +00:00
Suren Baghdasaryan
1277a130db
lmkd: Add support for persist.device_config.lmkd_native.* properties am: b91ecaa3e8
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/15738843
Change-Id: I765d1f73f5a4c3759e5c14a59c04a4ba9005f07a
2021-12-22 09:42:29 +00:00
liuhailong
4426238c51
lmkd: Fix lowmem_minfree out of bounds am: cf8af501dc am: 53df06cdf1 am: 986595819d am: 0ea9a37079
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1908669
Change-Id: If848e331616c15f13de4989fa9da9b0ebd709a7c
2021-12-07 03:40:45 +00:00
liuhailong
0ea9a37079
lmkd: Fix lowmem_minfree out of bounds am: cf8af501dc am: 53df06cdf1 am: 986595819d
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1908669
Change-Id: Idd0176344f3d3a96cb972dd695ade200c1013a15
2021-12-07 03:23:35 +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
2aea8f78c8
lmkd: fix low swap threshold failing to update after reinit am: 6e6d14b387 am: 07de899509 am: 6d2d6d4d62 am: ac36e3a50a am: d3677b36ef
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1874517
Change-Id: I0f97ebeea533eebeff113fb16c17e2672f712a83
2021-10-29 00:05:34 +00:00
Suren Baghdasaryan
d3677b36ef
lmkd: fix low swap threshold failing to update after reinit am: 6e6d14b387 am: 07de899509 am: 6d2d6d4d62 am: ac36e3a50a
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1874517
Change-Id: Id29a68a3ca01890be656f3cbfe4c8e99e6e83b96
2021-10-28 23:47:20 +00: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