lmkd: Add property re-initialization support
Add --reinit command-line option to allow updating lmkd properties. For
example to enable debug logging in the running lmkd process user should
issue:
setprop ro.lmk.debug true
lmkd --reinit
Bug: 155149944
Test: lmkd_unit_test after resetting lmkd properties
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ic60331f3368f5a7fdfe09ad7d47c7ccf0a497685
diff --git a/liblmkd_utils.cpp b/liblmkd_utils.cpp
index 280c149..45e867e 100644
--- a/liblmkd_utils.cpp
+++ b/liblmkd_utils.cpp
@@ -53,6 +53,30 @@
return (ret < 0) ? -1 : 0;
}
+enum update_props_result lmkd_update_props(int sock) {
+ LMKD_CTRL_PACKET packet;
+ size_t size;
+
+ size = lmkd_pack_set_update_props(packet);
+ if (TEMP_FAILURE_RETRY(write(sock, packet, size)) < 0) {
+ return UPDATE_PROPS_SEND_ERR;
+ }
+
+ size = TEMP_FAILURE_RETRY(read(sock, packet, CTRL_PACKET_MAX_SIZE));
+ if (size < 0) {
+ return UPDATE_PROPS_RECV_ERR;
+ }
+
+ if (size != 2 * sizeof(int) || lmkd_pack_get_cmd(packet) != LMK_UPDATE_PROPS) {
+ return UPDATE_PROPS_FORMAT_ERR;
+ }
+
+ struct lmk_update_props_reply params;
+ lmkd_pack_get_update_props_repl(packet, ¶ms);
+
+ return params.result == 0 ? UPDATE_PROPS_SUCCESS : UPDATE_PROPS_FAIL;
+}
+
int create_memcg(uid_t uid, pid_t pid) {
char buf[256];
int tasks_file;