Commit Graph

1455 Commits

Author SHA1 Message Date
Suren Baghdasaryan 0ac96fcb1a lmkd: Kill cached apps when thrashing or below low watermark
With Android U removing AMS kills, lmkd has additional duty to kill
cached apps which previously were killed by AMS. The former logic is
not proactive enough and leads to too many cached apps contributing
to memory pressure.
Implement additional logic to kill cached apps (excluding previous
foreground apps) when low watermark is breached or when device is
thrashing.

Bug: 300660611
Change-Id: I356eac1fe6d44dad292a7ea2fadee69a5be61479
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2023-10-10 15:52:24 -07:00
Suren Baghdasaryan ec169b178a lmkd/tests: handle reordering of killing and reaping reports in the logs
Since killing and reaping of a process is done in separate threads, it's
possible that the reaping report will be ordered before the kill report.
Adjust the test to handle this case by checking for the reaping report
in the entire log output.

Bug: 296555636
Change-Id: I5549b05392e08655655d4aecc4fadec281c489af
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2023-10-05 21:34:54 +00:00
Suren Baghdasaryan 90c4e26b9f lmkd/tests: do not fail when occasionally reaping time is reported as 0
In rare cases the process reaping time is short enough that it is
reported as 0. Prevent the test from failing in this rare case.

Bug: 296555636
Change-Id: I8484958eb9561ba345008195be8b6a7bd94e9ef3
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2023-10-05 21:34:38 +00:00
Suren Baghdasaryan 6c4dbbadb4 lmkd: Change critical thrashing limit to 3x of normal one am: ab906fb0ce
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2775527

Change-Id: Ib323320285b841a452675b33cee8634bafc9157f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-05 17:44:57 +00:00
Suren Baghdasaryan ab906fb0ce lmkd: Change critical thrashing limit to 3x of normal one
As a result of experiments, the default relation between critical and
normal thrashing limits has been shown to be insufficient. Increase the
relation from 2x to 3x.

Bug: 194316048
Change-Id: I19877e0df56be07f3f503688f408f5f91f4b1e67
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2023-10-05 15:07:04 +00:00
Kalesh Singh 8649898f6c Merge "lmkd: Remove uses of hardcoded 4k PAGE_SIZE macro" into main am: f6f744fcc9
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2694569

Change-Id: I5207e77969fed083af7a7907fa1014ff0853ce95
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-08-09 00:56:30 +00:00
Kalesh Singh f6f744fcc9 Merge "lmkd: Remove uses of hardcoded 4k PAGE_SIZE macro" into main 2023-08-09 00:18:34 +00:00
Kalesh Singh 5d397582ac lmkd: Remove uses of hardcoded 4k PAGE_SIZE macro
Use getpagesize() to query the real page size instead.

Bug: 294618124
Test: m
Change-Id: If9046f36412a54ba08b94cf3b43cd7bf9c1f26b5
2023-08-08 15:58:16 -07:00
Suren Baghdasaryan 3d9c7f86fa lmkd: check pgrefill vmstat when deciding active reclaim am: 4d8791b1f1
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2662996

Change-Id: I4b7e1a8bc1f8d5c706ff8fbdfbba952309cf643b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-07-28 22:52:14 +00:00
Suren Baghdasaryan 4d8791b1f1 lmkd: check pgrefill vmstat when deciding active reclaim
In rare cases it's possible that pgscan is not changing because inactive
LRU is empty and can't be refilled from the active LRU due to all
pages being hot. In such conditions pgscan_kswapd/pgscan_direct will
not change while pgrefill will be increasing due to active LRU being
scanned. Lmkd would incorrectly treat this situation as if no reclaim
activity happened.
Change lmkd to check pgrefill as well to detect such conditions.

Bug: 288383787
Change-Id: I6b49607429e2f673bba2645ccddff1a141afbcd1
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2023-07-28 20:48:15 +00:00
Lee George Thomas f53e58ae1d Add a configuration to delay monitor initialization am: 1847e9d7ab
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2650042

Change-Id: I6deffbc47fa0a6b7322cf35e41692a1ce0048c4c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-07-19 22:57:50 +00:00
Lee George Thomas 1847e9d7ab Add a configuration to delay monitor initialization
To save CPU cycles during boot for low resource device a new
configuration is added to delay initialization of monitoring until boot
is complete.

Bug: 288566858
Test: Build, boot and verified boot logs to confirm the behavior.
Merged-In: I17cfbf4c7f83bc80dd92a99dfb0254a7e20289be

Change-Id: I17cfbf4c7f83bc80dd92a99dfb0254a7e20289be
2023-07-19 19:46:12 +00:00
Suren Baghdasaryan b77b392278 lmkd: remove unused LMK_STAT_STATE_CHANGED notification am: 5860e852f8 am: 9260f6fdf4 am: 9c57dad3d2
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2596772

Change-Id: Iac383521d66b64009eae4ca731b5950a191e33d9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-20 03:10:13 +00:00
Suren Baghdasaryan 9c57dad3d2 lmkd: remove unused LMK_STAT_STATE_CHANGED notification am: 5860e852f8 am: 9260f6fdf4
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2596772

Change-Id: I9e6505aec49e190960395448cc201e22229e87ef
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-20 02:22:46 +00:00
Suren Baghdasaryan 9260f6fdf4 lmkd: remove unused LMK_STAT_STATE_CHANGED notification am: 5860e852f8
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2596772

Change-Id: Ie9de6d0d3f35ab4e12ab63b01fe5838fecf55099
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-20 01:34:24 +00:00
Suren Baghdasaryan 5860e852f8 lmkd: remove unused LMK_STAT_STATE_CHANGED notification
The LmkStateChanged atom was historically used to mark lmk activity
and trigger additional stats polling. For more than a year this has
not been used at all (as statsd supported event-based triggering).
Remove unnecessary functionality.

Bug: 278174420
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I9f7f56711fabb751cf7a57ea7279759bcc4a3dff
2023-05-19 14:08:10 -07:00
Kameron Lutes f935f02145 lmkd: Send Actual OOM Score to lmkd_free_memory_before_kill_hook am: 556740ef04 am: 52d4c9c66d am: 4fb4ad2282
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2489435

Change-Id: Ia0d934ba44f0ec835ada7853836bd939f4980a9e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 03:46:28 +00:00
Kameron Lutes 4fb4ad2282 lmkd: Send Actual OOM Score to lmkd_free_memory_before_kill_hook am: 556740ef04 am: 52d4c9c66d
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2489435

Change-Id: I290c75ace14c6b386f4bb546e6de00bb46bf7831
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 02:48:47 +00:00
Mateus Azis 6dc1b3f913 Improve code formatting for lmkd's README. am: bb87e41b6f am: 5bc7c509d5 am: ada49845b0
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2497556

Change-Id: If7419f3eaddee1da55a092663ef210ccd04a262d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 02:17:41 +00:00
Kameron Lutes 52d4c9c66d lmkd: Send Actual OOM Score to lmkd_free_memory_before_kill_hook am: 556740ef04
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2489435

Change-Id: I7f97cd8c982de680fc3d2e7e8c7e9d8ef1bfe125
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 02:12:09 +00:00
Mateus Azis ada49845b0 Improve code formatting for lmkd's README. am: bb87e41b6f am: 5bc7c509d5
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2497556

Change-Id: I8f57373b0dd8a50cb4e916318bdb2dcb7998fa3a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 01:33:17 +00:00
Mateus Azis 5bc7c509d5 Improve code formatting for lmkd's README. am: bb87e41b6f
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2497556

Change-Id: Ica7d6432333f5c40ec4caab690862e20d84039a1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 01:05:44 +00:00
Kameron Lutes 556740ef04 lmkd: Send Actual OOM Score to lmkd_free_memory_before_kill_hook
Previously the min_oom score of the candidate search was sent to
lmkd_free_memory_before_kill_hook. This is incorrect as the hook expects
the actual oom score of the process.

Bug: b/273670531
Test: cq
Change-Id: Id72c8b39f9c745a8f20fde15266857cb2d2222bf
2023-03-22 00:33:30 +00:00
Mateus Azis bb87e41b6f Improve code formatting for lmkd's README.
Before: https://android.googlesource.com/platform/system/memory/lmkd/+/refs/heads/master/README.md
After: https://android.googlesource.com/platform/system/memory/lmkd/+/refs/changes/56/2497556/2/README.md

Test: N/A
Change-Id: Id7fa7d0ffb66590525a978e3ee716ee567ea9fd6
2023-03-20 09:38:06 -07:00
Julien Desprez 6d1d0f0aac Move lmkd_tests to 'presubmit' group am: bedcba1885 am: 6d6feea2da am: 7e055d03a2
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2464654

Change-Id: I44c718953a26a88e1415a926f0a66d17ac4b534c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-02 02:36:55 +00:00
Julien Desprez 7e055d03a2 Move lmkd_tests to 'presubmit' group am: bedcba1885 am: 6d6feea2da
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2464654

Change-Id: I09a89a769e68774428bbe75c7c01f4cf949be70d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-02 01:59:09 +00:00
Julien Desprez 6d6feea2da Move lmkd_tests to 'presubmit' group am: bedcba1885
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2464654

Change-Id: Ie95b86af73903df43f39eb22cbd5856662d969ca
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-02 01:06:38 +00:00
Julien Desprez bedcba1885 Move lmkd_tests to 'presubmit' group
Doesn't need to be in 'presubmit-large' as it's a small and quick test.

Change-Id: I7a6b78cf3174993361f50d8d7adfdf86c9d20e28
Test: presubmit
Bug: 270214959
2023-03-01 21:42:30 +00:00
Automerger Merge Worker 31180bc115 Merge "[automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours" into stage-aosp-master am: 7079c57280 -s ours am: 70559e12d9 -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: Ifb083de77f91ac9fbc6cf8582de6e0414276448c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-12 13:51:05 +00:00
Xin Li 2413ec7e46 [automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours am: 83c6e6de68 -s ours am: b2710a1935 -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: I7f252acc244dc53f3d4a0f8ba282178ad3c4db82
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-12 13:48:11 +00:00
Xin Li 01daa66ac6 [automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours am: cbd81e2bf5 -s ours am: f5c6fd6fe0 -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: I08a7a0c553ee72e3ec6d617062c4e3a9de7ea46c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-12 11:57:18 +00:00
Automerger Merge Worker 70559e12d9 Merge "[automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours" into stage-aosp-master am: 7079c57280 -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: I549e8528915d96b31385634273ac5d56fa901c5c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-10 02:00:37 +00:00
Xin Li b2710a1935 [automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours am: 83c6e6de68 -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: I6729e72a0a01daa1391e683b440beb8813b3884f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-10 01:57:44 +00:00
Xin Li f5c6fd6fe0 [automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours am: cbd81e2bf5 -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: I4e6fa10f733b695f4fb35a43f5373f9dcb93fc15
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-10 00:25:05 +00:00
Automerger Merge Worker 7079c57280 Merge "[automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours" into stage-aosp-master 2022-12-09 23:32:17 +00:00
Xin Li 83c6e6de68 [automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: I6584c43f73918c030d8c04b42c3cfc5b1e8b9e59
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-09 23:19:43 +00:00
Xin Li cbd81e2bf5 [automerger skipped] Merge Android 13 QPR1 am: 60ab38d24a -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2338252

Change-Id: Ibed362db6eebbfe38d39dde837c9343bf7db7e83
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-09 23:14:59 +00:00
Xin Li 60ab38d24a Merge Android 13 QPR1
Bug: 261731544
Merged-In: Ib4665d3df62f58e36686ca134f9ae07836fd6945
Change-Id: Idf7e8e4ebefb65d3358e51220fa8ec24e371ddc9
2022-12-09 10:31:11 -08:00
Suren Baghdasaryan 876392ffc9 [automerger skipped] lmkd: prevent the main thread from reaping synchronously am: 0431b65e6c -s ours am: ed70ba8879 -s ours
am skip reason: Merged-In I351c01229152946969e646b538a2494656c0cc85 with SHA-1 1c96a31917 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20578227

Change-Id: Ib8b6e64067a8043268bed1a77edad779a1854534
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-01 08:34:53 +00:00
Suren Baghdasaryan ed70ba8879 [automerger skipped] lmkd: prevent the main thread from reaping synchronously am: 0431b65e6c -s ours
am skip reason: Merged-In I351c01229152946969e646b538a2494656c0cc85 with SHA-1 1c96a31917 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20578227

Change-Id: I7c10a08aaaf2b25242e5c724284cd685a4c542a0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-01 07:31:54 +00:00
Suren Baghdasaryan 0431b65e6c lmkd: prevent the main thread from reaping synchronously
lmkd main thread is running at RT priority to prevent it from being
blocked by other processes. However when all reaper threads are busy,
lmkd will kill and reap the memory of the target process from the
context of the main thread and that can cause two issues:
1. lmkd main thread gets blocked for considerable duration.
2. lmkd main and reaper threads might monopolize CPUs.
To prevent these issues, when all reaper threads are busy, lmkd will
send a SIGKILL but will not synchronously reap the memory of the target
process.

Bug: 238495258
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I351c01229152946969e646b538a2494656c0cc85
Merged-In: I351c01229152946969e646b538a2494656c0cc85
2022-11-28 15:29:14 +08:00
Suren Baghdasaryan 3d6e93b425 [automerger skipped] lmkd/tests: handle the case when process exits before reaping starts am: 2300230ea4 -s ours am: fcd8755e53 -s ours
am skip reason: Merged-In Ica5b28fa52a5f42a771fb9516112e58b66291068 with SHA-1 0cb4aae3e6 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20293560

Change-Id: Ieee10dfe08780271064f251cf6348d37bd5223d7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 22:36:28 +00:00
Suren Baghdasaryan 8ae523d48a [automerger skipped] lmkd: set priority of the kill target from the reaper thread am: 683da9812c -s ours am: 3243c6d24a -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20256679

Change-Id: I70d0888372ba49259c0efc7a36d49dfc18258904
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 22:36:27 +00:00
Suren Baghdasaryan ce4e38211a [automerger skipped] lmkd: remove priority setting for the kill target am: 2fa5b7af73 -s ours am: 29fdfcc93e -s ours
am skip reason: Merged-In I5defc6baa4ff1425d9835371b47a64e375ebac10 with SHA-1 67c467d4ec is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20156806

Change-Id: I8dae30665db2b6087a5bed2527f32ca86f5d96da
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 22:36:25 +00:00
Suren Baghdasaryan fcd8755e53 [automerger skipped] lmkd/tests: handle the case when process exits before reaping starts am: 2300230ea4 -s ours
am skip reason: Merged-In Ica5b28fa52a5f42a771fb9516112e58b66291068 with SHA-1 0cb4aae3e6 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20293560

Change-Id: Ibde562306f47c99dcaaad7f6ec5b65b489c0b728
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 21:19:53 +00:00
Suren Baghdasaryan 3243c6d24a [automerger skipped] lmkd: set priority of the kill target from the reaper thread am: 683da9812c -s ours
am skip reason: Merged-In Ib4665d3df62f58e36686ca134f9ae07836fd6945 with SHA-1 779a550826 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20256679

Change-Id: I2774cc3a764d302151daa333cc578a9a1219cd65
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 21:19:52 +00:00
Suren Baghdasaryan 29fdfcc93e [automerger skipped] lmkd: remove priority setting for the kill target am: 2fa5b7af73 -s ours
am skip reason: Merged-In I5defc6baa4ff1425d9835371b47a64e375ebac10 with SHA-1 67c467d4ec is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/20156806

Change-Id: I809c3c66ff904f99733589e76a08ffb6e10d84c7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 21:19:50 +00:00
Suren Baghdasaryan 2300230ea4 lmkd/tests: handle the case when process exits before reaping starts
Current test will fail in the case when the target process exits before
process_mrelease is called. However this is possible and should not be
treated as an invalid case. Add special handling of this case in the
test.

Bug: 254880957
Test: run lmkd_tests until this case happens
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ica5b28fa52a5f42a771fb9516112e58b66291068
Merged-In: Ica5b28fa52a5f42a771fb9516112e58b66291068
2022-10-26 23:55:56 +00:00
Suren Baghdasaryan 683da9812c lmkd: set priority of the kill target from the reaper thread
Not boosting kill target's priority can cause priority inversion. Boost
its priority from the reaper thread right after sending a SIGKILL to
prevent priority inversion. Also, using normal priority to the victim
processes. Thus, they won't take too much CPU resource which preempt
UI or important processes.

Bug: 238495258
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I789ec402f038a1b48d25f62f859be69bbddfad16
Merged-In: Ib4665d3df62f58e36686ca134f9ae07836fd6945
2022-10-26 23:55:36 +00:00
Suren Baghdasaryan 2fa5b7af73 lmkd: remove priority setting for the kill target
Setting cpusets and priorities for the kill target involves fs operations
which can block on kernel internal locks. Doing that from lmkd main thread
context has the danger of blocking lmkd. With the introduction of the
reaper threads the time for the target to exit is not as critical since
its memory is freed by the reaper thread.
To prevent lmkd from being blocked, move setting cpuset for the kill
target into the reaper thread and remove priority setting logic with
heavy use of procfs reads.

Bug: 238495258
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I5defc6baa4ff1425d9835371b47a64e375ebac10
Merged-In: I5defc6baa4ff1425d9835371b47a64e375ebac10
2022-10-26 22:23:02 +00:00