Bart Van Assche
a02c2dc079
lmkd: Use std::array<> and remove the ARRAY_SIZE() definition am: 545067957c am: f9489027a1 am: 350a02e15d
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972104
Change-Id: Ibff73f0b29a47624a374d46b92e98124a3d49f19
2022-02-23 19:45:13 +00:00
Bart Van Assche
65b793bb9a
lmkd: Use std::min() and std::max() instead of defining min() and max() macros am: 80a3dba57a am: c53ab08bf5 am: 20f9f7e0b7
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972103
Change-Id: I2de7ccd6d194fa959140a29f4b9963707aa37555
2022-02-23 19:45:12 +00:00
Bart Van Assche
bcc461658b
lmkd: Fix a potential buffer overflow am: 5ebc4e8f51 am: 75a98b56ab
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972105
Change-Id: I4778df4e1f58a665beb519f16287e4b84a0849e2
2022-02-23 19:21:31 +00:00
Bart Van Assche
350a02e15d
lmkd: Use std::array<> and remove the ARRAY_SIZE() definition am: 545067957c am: f9489027a1
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972104
Change-Id: If6a3e2e00794ec8df993a6bead87d564a2eea047
2022-02-23 19:21:30 +00:00
Bart Van Assche
20f9f7e0b7
lmkd: Use std::min() and std::max() instead of defining min() and max() macros am: 80a3dba57a am: c53ab08bf5
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972103
Change-Id: I56abe6f693c848eeae3acc3a39f723746f92b30a
2022-02-23 19:21:29 +00:00
Bart Van Assche
75a98b56ab
lmkd: Fix a potential buffer overflow am: 5ebc4e8f51
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972105
Change-Id: I4dca955fd118a16fc3bd1a37beeb8fe317bcbcc2
2022-02-23 18:55:06 +00:00
Bart Van Assche
f9489027a1
lmkd: Use std::array<> and remove the ARRAY_SIZE() definition am: 545067957c
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972104
Change-Id: Icb6ad2718ff8170bc457268688b9ae94e53a4c1f
2022-02-23 18:55:05 +00:00
Bart Van Assche
c53ab08bf5
lmkd: Use std::min() and std::max() instead of defining min() and max() macros am: 80a3dba57a
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972103
Change-Id: Ifd1a8218fd0d6fbb4bbca9b0cc65b39c8b0e7226
2022-02-23 18:55:04 +00:00
Suren Baghdasaryan
57c84b1272
[automerger skipped] lmkd: Allow killing perceptible apps when recorded stall is too high am: 65e7d14e2a -s ours am: 77d001ed58 -s ours am: 7c4c36107f -s ours am: a4feb98740 -s ours
...
am skip reason: Merged-In I9713e30d82641d86d1b7edb5e1ba2971b935c898 with SHA-1 5ae47a9563 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16853454
Change-Id: I5d4b0a8c86c6e795d9135aeed4a03ec1b4759043
2022-02-23 18:10:04 +00:00
Suren Baghdasaryan
579e923a34
[automerger skipped] lmkd: Allow killing perceptible apps when recorded stall is too high am: 65e7d14e2a -s ours am: 77d001ed58 -s ours am: 7c4c36107f -s ours
...
am skip reason: Merged-In I9713e30d82641d86d1b7edb5e1ba2971b935c898 with SHA-1 5ae47a9563 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16853454
Change-Id: I4407201acba592bb056c1df0ef65bcede8d55b07
2022-02-23 17:20:29 +00:00
Suren Baghdasaryan
a4feb98740
[automerger skipped] lmkd: Allow killing perceptible apps when recorded stall is too high am: 65e7d14e2a -s ours am: 77d001ed58 -s ours am: 7c4c36107f -s ours
...
am skip reason: Merged-In I9713e30d82641d86d1b7edb5e1ba2971b935c898 with SHA-1 5ae47a9563 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16853454
Change-Id: I0c1508341ad1a1ed0376b817184b3fa72b1878a6
2022-02-23 17:19:08 +00:00
Bart Van Assche
5ebc4e8f51
lmkd: Fix a potential buffer overflow
...
Prevent that the statement that writes '\0' past the read data can write
past the end of the buffer.
Bug: 213617178
Test: Compile-tested only.
Change-Id: I6922c343a6bcb52dce0b5cf54f09b2850e9dfde2
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2022-02-23 17:05:11 +00:00
Bart Van Assche
545067957c
lmkd: Use std::array<> and remove the ARRAY_SIZE() definition
...
Using ARRAY_SIZE() on a pointer yields 1 while applying .size() to a
pointer triggers a compiler error. Hence use .size() instead of
ARRAY_SIZE().
Bug: 213617178
Test: Compile-tested only.
Change-Id: Ie0f9740f59470c943f8d62b9475f7f987ed8707b
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2022-02-23 17:05:11 +00:00
Bart Van Assche
80a3dba57a
lmkd: Use std::min() and std::max() instead of defining min() and max() macros
...
std::min() and std::max() check whether the argument types match but
min() and max() not. Hence switch to std::min() and std::max().
Bug: 213617178
Test: Compile-tested only.
Change-Id: Iaf1f63360c9360938db56d485dbd1e504129c52d
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2022-02-23 17:05:10 +00:00
Suren Baghdasaryan
7c4c36107f
[automerger skipped] lmkd: Allow killing perceptible apps when recorded stall is too high am: 65e7d14e2a -s ours am: 77d001ed58 -s ours
...
am skip reason: Merged-In I9713e30d82641d86d1b7edb5e1ba2971b935c898 with SHA-1 5ae47a9563 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16853454
Change-Id: I8d5a6c82f6c980ed7ec2488dbc8c2972716456f2
2022-02-22 23:24:33 +00:00
Suren Baghdasaryan
77d001ed58
[automerger skipped] lmkd: Allow killing perceptible apps when recorded stall is too high am: 65e7d14e2a -s ours
...
am skip reason: Merged-In I9713e30d82641d86d1b7edb5e1ba2971b935c898 with SHA-1 5ae47a9563 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16853454
Change-Id: I80f87a21806b6d78063673ff0d8c4b5de329246f
2022-02-22 23:02:14 +00:00
Suren Baghdasaryan
ef2f11d531
lmkd: Log psi averages in killinfo reports am: 014dd7156e am: 58fa91d0cf am: 7475f87830 am: b3ffc654fd am: 4609284014
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992291
Change-Id: I636d0eae306af0748cb8d8b1d925d34207979482
2022-02-22 21:57:19 +00:00
Suren Baghdasaryan
54ca430c49
lmkd: Log psi averages in killinfo reports am: 014dd7156e am: 58fa91d0cf am: 7475f87830 am: b3ffc654fd
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992291
Change-Id: I3d0e176a88533b2e58a502630bc1a19bd1051ac1
2022-02-22 21:35:20 +00:00
Suren Baghdasaryan
4609284014
lmkd: Log psi averages in killinfo reports am: 014dd7156e am: 58fa91d0cf am: 7475f87830 am: b3ffc654fd
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992291
Change-Id: Ic7fef56fc049a8bf5b19996874b14d7d8b21efca
2022-02-22 21:14:52 +00:00
Suren Baghdasaryan
b3ffc654fd
lmkd: Log psi averages in killinfo reports am: 014dd7156e am: 58fa91d0cf am: 7475f87830
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992291
Change-Id: I19c8d578df21710989921bea09cce98b8c103905
2022-02-22 20:49:54 +00:00
Suren Baghdasaryan
7475f87830
lmkd: Log psi averages in killinfo reports am: 014dd7156e am: 58fa91d0cf
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992291
Change-Id: Ibeae28dd24c0b748ea63a902ed904178c85d8209
2022-02-22 20:27:40 +00:00
Suren Baghdasaryan
58fa91d0cf
lmkd: Log psi averages in killinfo reports am: 014dd7156e
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992291
Change-Id: I4c0d6094b137cb996d48f07bd528db4c346d1ee1
2022-02-22 19:47:43 +00:00
Suren Baghdasaryan
ed79eb8f6c
lmkd: Allow killing perceptible apps when recorded stall is too high am: 5ae47a9563 am: 744462fdf0 am: 38cbc12b33 am: 915a384a57 am: cddacf8864
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992290
Change-Id: I97db54a753ab388a8a21a9813ea9483d5d16eaa5
2022-02-22 12:55:42 +00:00
Suren Baghdasaryan
6b34e5423e
lmkd: Allow killing perceptible apps when recorded stall is too high am: 5ae47a9563 am: 744462fdf0 am: 38cbc12b33 am: 915a384a57
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992290
Change-Id: If0e1ba079c04e386b64b54784ce248c5db4e412d
2022-02-22 12:34:12 +00:00
Suren Baghdasaryan
cddacf8864
lmkd: Allow killing perceptible apps when recorded stall is too high am: 5ae47a9563 am: 744462fdf0 am: 38cbc12b33 am: 915a384a57
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992290
Change-Id: I3820ed100c64683f6ff1c5b50405678436d02cb7
2022-02-22 12:32:57 +00:00
Suren Baghdasaryan
915a384a57
lmkd: Allow killing perceptible apps when recorded stall is too high am: 5ae47a9563 am: 744462fdf0 am: 38cbc12b33
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992290
Change-Id: Iab5c69a5d7b5fbe6e72559c2db858dae833ee826
2022-02-22 12:02:12 +00:00
Suren Baghdasaryan
38cbc12b33
lmkd: Allow killing perceptible apps when recorded stall is too high am: 5ae47a9563 am: 744462fdf0
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992290
Change-Id: Ieb445737f6ba7ea2913c08076c2c11e95350c528
2022-02-22 11:40:39 +00:00
Suren Baghdasaryan
744462fdf0
lmkd: Allow killing perceptible apps when recorded stall is too high am: 5ae47a9563
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1992290
Change-Id: I5f5c75c6673b9d72b18a1730cf3e5a9c34c9562c
2022-02-22 11:19:32 +00:00
Suren Baghdasaryan
65e7d14e2a
lmkd: Allow killing perceptible apps when recorded stall is too high
...
When system is under heavy memory pressure the system might be able
to keep free memory above the min watermark avoiding perceptible app
kills. In such situation system might end up using all its cpu
capacity on memory reclaim and not doing productive work. To detect
this condition, check memory full stall and compare it with the new
ro.lmk.stall_limit_critical tunable representing the stall threshold.
When the recorded level is over ro.lmk.stall_limit_critical, lmkd will
be allowed to kill perceptible apps. ro.lmk.stall_limit_critical
represents the max memory full stall in % that is allowed before
perceptible apps will get killed. By default it is set to 100%, which
effectively disables the feature.
Currently system stall is measured based on psi memory stall 10s average
value, however this definition might change in the future if better
metrics are developed. Setting ro.lmk.stall_limit_critical to 5 means
the system should be fully stalled (no productive work is done) for 5%
of the 10sec period, resulting in 0.5 sec loss due to the stall.
Bug: 205182133
Test: verify on heavy memory pressure test
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Martin Liu <liumartin@google.com>
Change-Id: I9713e30d82641d86d1b7edb5e1ba2971b935c898
Merged-In: I9713e30d82641d86d1b7edb5e1ba2971b935c898
2022-02-22 15:03:28 +08:00
Suren Baghdasaryan
014dd7156e
lmkd: Log psi averages in killinfo reports
...
Add psi memory, io and cpu 10sec averages into killinfo reports.
Bug: 205182133
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ifbcf47cab291fb20dbf0b5d32f1965f4e6462b49
2022-02-21 20:30:50 -08:00
Suren Baghdasaryan
5ae47a9563
lmkd: Allow killing perceptible apps when recorded stall is too high
...
When system is under heavy memory pressure the system might be able
to keep free memory above the min watermark avoiding perceptible app
kills. In such situation system might end up using all its cpu
capacity on memory reclaim and not doing productive work. To detect
this condition, check memory full stall and compare it with the new
ro.lmk.stall_limit_critical tunable representing the stall threshold.
When the recorded level is over ro.lmk.stall_limit_critical, lmkd will
be allowed to kill perceptible apps. ro.lmk.stall_limit_critical
represents the max memory full stall in % that is allowed before
perceptible apps will get killed. By default it is set to 100%, which
effectively disables the feature.
Currently system stall is measured based on psi memory stall 10s average
value, however this definition might change in the future if better
metrics are developed. Setting ro.lmk.stall_limit_critical to 5 means
the system should be fully stalled (no productive work is done) for 5%
of the 10sec period, resulting in 0.5 sec loss due to the stall.
Bug: 205182133
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I9713e30d82641d86d1b7edb5e1ba2971b935c898
2022-02-21 20:27:45 -08:00
Xin Li
ad00642f43
[automerger skipped] Empty merge of sc-v2-dev-plus-aosp-without-vendor@8084891 am: 2a6c586684 -s ours am: b30fc24fa5 -s ours
...
am skip reason: Merged-In I56a55834582e11c06cc6cf9da3bc7380e634b301 with SHA-1 af1b0e0627 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16844465
Change-Id: I4f847ea218d2be02444ff7d41509a5e30455e0ba
2022-02-11 15:59:04 +00:00
Xin Li
b30fc24fa5
[automerger skipped] Empty merge of sc-v2-dev-plus-aosp-without-vendor@8084891 am: 2a6c586684 -s ours
...
am skip reason: Merged-In I56a55834582e11c06cc6cf9da3bc7380e634b301 with SHA-1 af1b0e0627 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16844465
Change-Id: I425ecd3dc45128d36438baabc23a9bd1d4bc7f31
2022-02-11 15:42:00 +00:00
Xin Li
2a6c586684
Empty merge of sc-v2-dev-plus-aosp-without-vendor@8084891
...
Bug: 214455710
Merged-In: I56a55834582e11c06cc6cf9da3bc7380e634b301
Change-Id: I797ed9d8872a2bdef27a9f2e4053874f88bdd56c
2022-02-11 06:17:36 +00:00
Suren Baghdasaryan
b66ac6134a
lmkd/tests: Consume memory more aggressively to avoid test timeout am: 2bf5487381 am: 99cb321008 am: c701f32c23 am: 81b6597577
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972099
Change-Id: I7f4504ff20c0029d8c208739187c363f55b3f321
2022-02-04 01:10:54 +00:00
Suren Baghdasaryan
81b6597577
lmkd/tests: Consume memory more aggressively to avoid test timeout am: 2bf5487381 am: 99cb321008 am: c701f32c23
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972099
Change-Id: I9d964c75c5f923e5d4db2790fa96382eb5e387f6
2022-02-04 00:59:36 +00:00
Suren Baghdasaryan
c701f32c23
lmkd/tests: Consume memory more aggressively to avoid test timeout am: 2bf5487381 am: 99cb321008
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972099
Change-Id: I35abb6e745ed1c874d38b1eadd22c1daf021e4ec
2022-02-04 00:38:32 +00:00
Suren Baghdasaryan
99cb321008
lmkd/tests: Consume memory more aggressively to avoid test timeout am: 2bf5487381
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1972099
Change-Id: I16cbef5d2680d974604c27b5940c5dadaf9395e9
2022-02-04 00:26:37 +00:00
Suren Baghdasaryan
2bf5487381
lmkd/tests: Consume memory more aggressively to avoid test timeout
...
Increase the allocation step to 5MB and decrease the delay between
allocations to 200ms in order to speed up memory consumption and
avoid the test timing out.
Bug: 217478668
Test: atest lmkd_tests:lmkd_tests.LmkdTest#TargetReaping -- --abi x86_64
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ia36229b280d79acd9d93a5ca1961d6cf1ef223df
2022-02-03 14:53:00 -08:00
Suren Baghdasaryan
f0674bce25
lmkd/tests: Move tests into presubmit-large category to avoid timeouts am: c58acac201 am: baeb509b2e am: 441dc7c66b am: 7cb56c0b12
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1969139
Change-Id: I5de02e4848e55c642711327b42240163a375abbc
2022-02-02 20:23:48 +00:00
Suren Baghdasaryan
7cb56c0b12
lmkd/tests: Move tests into presubmit-large category to avoid timeouts am: c58acac201 am: baeb509b2e am: 441dc7c66b
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1969139
Change-Id: I11f82cd53ed8692fd3946ca55bd88efbb5646a70
2022-02-02 20:07:08 +00:00
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
599d11ab51
lmkd/tests: Add a test to check for lmkd process reaping capability am: 683d6cbc2d am: 4805030ba6 am: 73bdbb628e am: 1eccbfacfe
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1964686
Change-Id: Ie10c754b2d84d7e9352f14873dc324a47221bd96
2022-02-02 02:50:30 +00:00
Suren Baghdasaryan
1eccbfacfe
lmkd/tests: Add a test to check for lmkd process reaping capability am: 683d6cbc2d am: 4805030ba6 am: 73bdbb628e
...
Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/1964686
Change-Id: I1459eea1dc1a0bb2ff746e13f8cfb5b46779c17c
2022-02-02 02:31:24 +00: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
7ed77b51a3
[automerger skipped] lmkd: Set task profiles to the entire process am: b8cdb6ac91 -s ours am: 9f0e529b51 -s ours
...
am skip reason: Merged-In I9c1917172019a42809385f6c9c084b8cb343b520 with SHA-1 2bdf7f0c74 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/memory/lmkd/+/16687016
Change-Id: Iebf6d96ced5fe476d0e539680084ef528f30fedf
2022-01-26 01:10:02 +00:00