From 9363cb876c3acf314125b86662b0171cb57530ea Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Mon, 27 Jul 2020 12:52:09 +0900 Subject: [PATCH 01/16] Release version 0.15.12 Changes: - Fix Launchpad Library - Fix wrong implementation Change-Id: I8a8cae0b277f8302ed6ec0a4b68060195d4b304d Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index dcf1061..a28cfde 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.11 +Version: 0.15.12 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From 24f14678f28f2432cf3349a93f51e45aed1e33ad Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 31 Jul 2020 10:00:47 +0900 Subject: [PATCH 02/16] Fix exception handling about printing log If the logger initialization is failed, printing log will be skipped. Change-Id: I2e94fb628ed6cc2b42312e9d83bcbfebd5c24c3a Signed-off-by: Hwankyu Jhun --- src/launchpad/src/launchpad_log.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/launchpad/src/launchpad_log.c b/src/launchpad/src/launchpad_log.c index 00acc46..a8d00a3 100644 --- a/src/launchpad/src/launchpad_log.c +++ b/src/launchpad/src/launchpad_log.c @@ -30,15 +30,9 @@ int _log_print(const char *tag, const char *format, ...) { char formatted_buf[LAUNCHPAD_LOG_MAX_STRING_SIZE]; va_list ap; - int ret; - if (!__logger) { - ret = _logger_create(PATH_LAUNCHPAD_LOG, &__logger); - if (ret != 0) { - _E("Failed to create log file. error(%d)", ret); - return -1; - } - } + if (!__logger) + return 0; va_start(ap, format); vsnprintf(formatted_buf, sizeof(formatted_buf), format, ap); -- 2.7.4 From 7ef36ed3b13415cd6014642bf0db70dfd2f70e85 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 31 Jul 2020 10:09:15 +0900 Subject: [PATCH 03/16] Release version 0.15.13 Changes: - Fix exception handling about printing log Change-Id: I48573b405361a58988de64720987f188b08ab5d6 Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index a28cfde..7af3e8c 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.12 +Version: 0.15.13 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From 5899cef0a312ca0e764c66a30d8d51e1b5d96c50 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 5 Aug 2020 08:35:02 +0900 Subject: [PATCH 04/16] Add debugging logs Change-Id: I77be8ed0eac2ceb39776bb362f30a87597b7e56d Signed-off-by: Hwankyu Jhun --- src/launchpad/src/launchpad.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index 1b941b9..6e9864d 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -1517,7 +1517,9 @@ static void __handle_sigchild(int pid, void *user_data) appid = g_hash_table_lookup(__pid_table, GINT_TO_POINTER(pid)); if (appid) { + _W("security_manager_cleanup_app() ++"); security_manager_cleanup_app(appid, getuid(), pid); + _W("security_manager_cleanup_app() --"); g_hash_table_remove(__pid_table, GINT_TO_POINTER(pid)); } -- 2.7.4 From f410e532bd20e6814a898c112d8807c5985c590f Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 5 Aug 2020 08:41:09 +0900 Subject: [PATCH 05/16] Release version 0.15.14 Changes: - Add debugging logs Change-Id: I28fac4fa8d4f3125e2ee65ce67aab2529ccbf6fa Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 7af3e8c..41af01e 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.13 +Version: 0.15.14 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From 9d0812ce40cc6509dd24e650c9947abcec8172bb Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 7 Aug 2020 14:49:08 +0900 Subject: [PATCH 06/16] Fix client pid check If the loader context is a hydra loader, launchpad doesn't check the client process ID. The child process of the hydra loader tries to connect to the launchpad-process-pool. If launchpad rejects the request, the child process of the hydra loader will be terminated. Change-Id: If4898ba64acb75f647086e266289a669f83673d5 Signed-off-by: Hwankyu Jhun --- src/launchpad/src/launchpad.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index 6e9864d..804aa23 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -629,7 +629,7 @@ static int __accept_candidate_process(int server_fd, int *out_client_fd, goto error; } - if (cred.pid != cpc_pid) { + if (cpc_pid != -1 && cred.pid != cpc_pid) { _E("Invalid accept. pid(%d)", cred.pid); goto error; } @@ -1449,7 +1449,7 @@ static bool __handle_loader_event(int fd, io_condition_e cond, void *data) if (!cpc->prepared) { ret = __accept_candidate_process(fd, &client_fd, &client_pid, - cpc->pid); + cpc->is_hydra ? -1 : cpc->pid); if (ret >= 0) { /* for hydra need to set pid to pid of non-hydra candidate, */ /* which is connecting now */ -- 2.7.4 From 967463983c504940fca928338c99f245f148f23c Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 7 Aug 2020 15:49:46 +0900 Subject: [PATCH 07/16] Release version 0.15.15 Changes: - Fix client pid check Change-Id: I75c21585d3379a59be25e9e2b732f1422a217f33 Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 41af01e..8b02454 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.14 +Version: 0.15.15 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From ade3ffee277cf050df19c4aa2524fe7c3e202062 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Mon, 10 Aug 2020 09:34:05 +0900 Subject: [PATCH 08/16] Add worker thread for cleanup app To avoid blocking launchpad, a new worker thread is added for calling security_manager_cleanup_app(). While installing / uninstalling / updating the package, security-manager daemon can be blocked. If launchpad calls security_manager_cleanup_app() at that time, launchpad will be blocked. Change-Id: I1e88ec38f61eabe21afa754f39f511606c85f148 Signed-off-by: Hwankyu Jhun --- src/launchpad/inc/launchpad_worker.h | 38 +++++++++ src/launchpad/src/launchpad.c | 69 ++++++++++++++- src/launchpad/src/launchpad_worker.c | 161 +++++++++++++++++++++++++++++++++++ 3 files changed, 265 insertions(+), 3 deletions(-) create mode 100644 src/launchpad/inc/launchpad_worker.h create mode 100644 src/launchpad/src/launchpad_worker.c diff --git a/src/launchpad/inc/launchpad_worker.h b/src/launchpad/inc/launchpad_worker.h new file mode 100644 index 0000000..cee3000 --- /dev/null +++ b/src/launchpad/inc/launchpad_worker.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LAUNCHPAD_WORKER_H__ +#define __LAUNCHPAD_WORKER_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef bool (*worker_job_cb)(void *user_data); + +int _worker_add_job(worker_job_cb callback, void *user_data); + +int _worker_init(void); + +void _worker_fini(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __LAUNCHPAD_WORKER_H__ */ diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index 804aa23..b74dbb2 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -54,6 +54,7 @@ #include "launchpad_proc.h" #include "launchpad_signal.h" #include "launchpad_types.h" +#include "launchpad_worker.h" #include "loader_info.h" #include "perf.h" @@ -159,6 +160,11 @@ struct app_info { bool exists; }; +struct cleanup_info_s { + char *appid; + int pid; +}; + static int __sys_hwacc; static GList *loader_info_list; static GList *app_defined_loader_info_list; @@ -1510,16 +1516,68 @@ static bool __handle_hydra_event(int fd, io_condition_e cond, void *data) return true; } +static void __destroy_cleanup_info(struct cleanup_info_s *info) +{ + if (!info) + return; + + free(info->appid); + free(info); +} + +static struct cleanup_info_s *__create_cleanup_info(const char *appid, int pid) +{ + struct cleanup_info_s *info; + + info = malloc(sizeof(struct cleanup_info_s)); + if (!info) { + _E("Out of memory"); + return NULL; + } + + info->appid = strdup(appid); + if (!info->appid) { + _E("strdup(%s) is failed", appid); + __destroy_cleanup_info(info); + return NULL; + } + + info->pid = pid; + + return info; +} + +static bool __cleanup_app_cb(void *user_data) +{ + struct cleanup_info_s *info = (struct cleanup_info_s *)user_data; + + _W("security_manager_cleanup_app() ++"); + security_manager_cleanup_app(info->appid, getuid(), info->pid); + _W("security_manager_cleanup_app() --"); + __destroy_cleanup_info(info); + return false; +} + static void __handle_sigchild(int pid, void *user_data) { candidate_process_context_t *cpc; + struct cleanup_info_s *info; char *appid; + int ret = -1; appid = g_hash_table_lookup(__pid_table, GINT_TO_POINTER(pid)); if (appid) { - _W("security_manager_cleanup_app() ++"); - security_manager_cleanup_app(appid, getuid(), pid); - _W("security_manager_cleanup_app() --"); + info = __create_cleanup_info(appid, pid); + if (info) + ret = _worker_add_job(__cleanup_app_cb, info); + + if (ret != 0) { + __destroy_cleanup_info(info); + _W("security_manager_cleanup_app() ++"); + security_manager_cleanup_app(appid, getuid(), pid); + _W("security_manager_cleanup_app() --"); + } + g_hash_table_remove(__pid_table, GINT_TO_POINTER(pid)); } @@ -3077,6 +3135,10 @@ static int __before_loop(int argc, char **argv) return -1; } + ret = _worker_init(); + if (ret < 0) + return ret; + __register_vconf_events(); __init_app_defined_loader_monitor(); _memory_monitor_init(); @@ -3091,6 +3153,7 @@ static void __after_loop(void) _log_fini(); _memory_monitor_fini(); __unregister_vconf_events(); + _worker_fini(); if (__pid_table) g_hash_table_destroy(__pid_table); diff --git a/src/launchpad/src/launchpad_worker.c b/src/launchpad/src/launchpad_worker.c new file mode 100644 index 0000000..3f600d7 --- /dev/null +++ b/src/launchpad/src/launchpad_worker.c @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "launchpad_worker.h" +#include "log_private.h" + +struct job_s { + worker_job_cb callback; + void *user_data; +}; + +struct worker_s { + GThread *thread; + GMutex mutex; + GCond cond; + GQueue *queue; +}; + +static struct worker_s __worker; + +int _worker_add_job(worker_job_cb callback, void *user_data) +{ + struct job_s *job; + + if (!callback) { + _E("Invalid parameter"); + return -EINVAL; + } + + job = malloc(sizeof(struct job_s)); + if (!job) { + _E("Out of memory"); + return -ENOMEM; + } + + job->callback = callback; + job->user_data = user_data; + + g_mutex_lock(&__worker.mutex); + g_queue_push_tail(__worker.queue, job); + g_cond_signal(&__worker.cond); + g_mutex_unlock(&__worker.mutex); + + return 0; +} + +static int __set_comm(const char *name) +{ + int fd; + ssize_t bytes_written; + char path[PATH_MAX]; + pid_t tid = syscall(__NR_gettid); + + _I("[%s] TID(%d)", name, tid); + snprintf(path, sizeof(path), "/proc/%d/comm", tid); + fd = open(path, O_WRONLY); + if (fd < 0) { + _E("Failed to open %s. error(%d)", path, errno); + return -1; + } + + bytes_written = write(fd, name, strlen(name) + 1); + if (bytes_written < 0) { + _E("Failed to write name(%s)", name); + close(fd); + return -1; + } + + close(fd); + return 0; +} + +static gpointer __worker_thread_cb(gpointer data) +{ + struct worker_s *worker = (struct worker_s *)data; + struct job_s *job; + bool done = false; + + __set_comm("worker"); + do { + g_mutex_lock(&worker->mutex); + if (g_queue_is_empty(worker->queue)) + g_cond_wait(&worker->cond, &worker->mutex); + + job = (struct job_s *)g_queue_pop_head(worker->queue); + g_mutex_unlock(&worker->mutex); + done = job->callback(job->user_data); + free(job); + } while (!done); + + return NULL; +} + +int _worker_init(void) +{ + _W("WORKER_INIT"); + + g_mutex_init(&__worker.mutex); + g_cond_init(&__worker.cond); + + __worker.queue = g_queue_new(); + if (!__worker.queue) { + _E("g_queue_new() is failed"); + return -ENOMEM; + } + + __worker.thread = g_thread_new("worker", __worker_thread_cb, &__worker); + if (!__worker.thread) { + _E("g_thread_new() is failed"); + return -ENOMEM; + } + + return 0; +} + +static bool __worker_done_cb(void *user_data) +{ + _W("Done"); + return true; +} + +void _worker_fini(void) +{ + _W("WORKER_FINI"); + + if (__worker.thread) { + _worker_add_job(__worker_done_cb, NULL); + g_thread_join(__worker.thread); + } + + if (__worker.queue) + g_queue_free_full(__worker.queue, (GDestroyNotify)free); + + g_cond_clear(&__worker.cond); + g_mutex_clear(&__worker.mutex); +} -- 2.7.4 From 595f745eb89b3e890e741c44d6f736e506755b83 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Mon, 10 Aug 2020 10:58:39 +0900 Subject: [PATCH 09/16] Release version 0.15.16 Changes: - Add worker thread for cleanup app Change-Id: I4df5b28af75beffc299bb80fa140acc87b43ca87 Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 8b02454..233d3e8 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.15 +Version: 0.15.16 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From b38769af5376cf46e3bdb329d184a815216ad5fb Mon Sep 17 00:00:00 2001 From: Changgyu Choi Date: Thu, 13 Aug 2020 19:03:10 +0900 Subject: [PATCH 10/16] Fix memory leak Change-Id: Iacde7fe8fe768c39def208e017a89e619b635ab2 Signed-off-by: Changgyu Choi --- src/launchpad/src/launchpad.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index 6e9864d..0c7bc85 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -1805,11 +1805,11 @@ static int __dispatch_cmd_add_app_defined_loader(bundle *kb) return -EINVAL; } - bundle_encode(info->extra, &extra, &len); cpc = __find_slot_from_loader_name(loader_name); if (cpc == NULL) { lid = __make_loader_id(); + bundle_encode(info->extra, &extra, &len); cpc = __add_slot(LAUNCHPAD_LOADER_TYPE_DYNAMIC, lid, 0, loader_name, "/usr/bin/app-defined-loader", (const char *)extra, METHOD_TIMEOUT | METHOD_VISIBILITY, @@ -1823,6 +1823,8 @@ static int __dispatch_cmd_add_app_defined_loader(bundle *kb) true, false, true); + + free(extra); if (cpc == NULL) { _E("cpc is NULL"); bundle_free_encoded_rawdata(&extra); @@ -2689,6 +2691,8 @@ static void __add_slot_from_info(gpointer data, gpointer user_data) info->app_exists, info->is_hydra, info->app_check); + + free(extra); if (cpc == NULL) return; -- 2.7.4 From 3c3fe16905321cd744c4b2f397d4daf38cc9e94b Mon Sep 17 00:00:00 2001 From: Changgyu Choi Date: Fri, 14 Aug 2020 09:19:11 +0900 Subject: [PATCH 11/16] Fix double free Change-Id: I42d55f853c852d73667de28d7665341023f9103c Signed-off-by: Changgyu Choi --- src/launchpad/src/launchpad.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index c3ec424..ef73a44 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -1882,10 +1882,9 @@ static int __dispatch_cmd_add_app_defined_loader(bundle *kb) false, true); - free(extra); + bundle_free_encoded_rawdata(&extra); if (cpc == NULL) { _E("cpc is NULL"); - bundle_free_encoded_rawdata(&extra); return -ENOMEM; } } else { @@ -2750,7 +2749,7 @@ static void __add_slot_from_info(gpointer data, gpointer user_data) info->is_hydra, info->app_check); - free(extra); + bundle_free_encoded_rawdata(&extra); if (cpc == NULL) return; -- 2.7.4 From b04752a3e03b2babd60af81e5d6a3a66cf03a1fa Mon Sep 17 00:00:00 2001 From: Changgyu Choi Date: Fri, 14 Aug 2020 09:36:21 +0900 Subject: [PATCH 12/16] Release version 0.15.17 Changes: - Fix memory leak - Fix double free Change-Id: I28896bfe7c58075e384c4ca70d6a03a5f531f72b Signed-off-by: Changgyu Choi --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 233d3e8..924bdae 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.16 +Version: 0.15.17 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From c74a60463c77c7edc9649407d4c8d9bfd2eb765b Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 14 Aug 2020 10:39:54 +0900 Subject: [PATCH 13/16] Remove unused codes Change-Id: I55b92d53e6824866d3cf0143c514407c924faf4e Signed-off-by: Hwankyu Jhun --- src/common/inc/launchpad_common.h | 1 - src/launchpad/src/launchpad.c | 1 - 2 files changed, 2 deletions(-) diff --git a/src/common/inc/launchpad_common.h b/src/common/inc/launchpad_common.h index 0850aed..2b1d41c 100644 --- a/src/common/inc/launchpad_common.h +++ b/src/common/inc/launchpad_common.h @@ -53,7 +53,6 @@ #define LAUNCHPAD_LAUNCH_SIGNAL 83 #define LAUNCHPAD_DEAD_SIGNAL 61 #define APP_STARTUP_SIGNAL 89 -#define LAUNCHPAD_CHILD_PROCESS 130 #define PAD_LOADER_ID_STATIC 0 #define PAD_LOADER_ID_DIRECT 1 diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index ef73a44..55d3e39 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -806,7 +806,6 @@ static int __exec_loader_process(void *arg) char **argv = arg; char err_buf[1024]; - _send_cmd_to_amd(LAUNCHPAD_CHILD_PROCESS); _signal_unblock_sigchld(); _close_all_fds(); _setup_stdio(basename(argv[LOADER_ARG_PATH])); -- 2.7.4 From ffbb3a33fbb2e269b137901d4327a9651157665d Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 19 Aug 2020 14:35:06 +0900 Subject: [PATCH 14/16] Release version 0.15.18 Changes: - Remove unused codes Change-Id: I1122f248c13d322c622f8185d1594e86b09c45ac Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 924bdae..3ebc2ca 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.17 +Version: 0.15.18 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4 From 3830285fbae06a02f8e127b64d8b38f723a24c15 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 19 Aug 2020 15:59:37 +0900 Subject: [PATCH 15/16] Add hwc logs for performance check Change-Id: I77dcd11e86967cead7b6199812dca6ae8cdb872d Signed-off-by: Hwankyu Jhun --- src/launchpad/src/launchpad.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/launchpad/src/launchpad.c b/src/launchpad/src/launchpad.c index 55d3e39..c506541 100644 --- a/src/launchpad/src/launchpad.c +++ b/src/launchpad/src/launchpad.c @@ -3079,6 +3079,7 @@ static int __before_loop(int argc, char **argv) { int ret; + _print_hwc_log("%s(%d): START", __FUNCTION__, __LINE__); ret = __sequencer_init(); if (ret < 0) { _E("Failed to initialize sequencer"); @@ -3146,6 +3147,7 @@ static int __before_loop(int argc, char **argv) _memory_monitor_init(); _memory_monitor_set_event_cb(__memory_monitor_cb, NULL); _log_init(); + _print_hwc_log("%s(%d): END", __FUNCTION__, __LINE__); return 0; } @@ -3190,12 +3192,14 @@ int main(int argc, char **argv) { GMainLoop *mainloop = NULL; + _print_hwc_log("%s(%d): START", __FUNCTION__, __LINE__); mainloop = g_main_loop_new(NULL, FALSE); if (!mainloop) { _E("Failed to create glib main loop"); return -1; } + _print_hwc_log("%s(%d): __before_loop()", __FUNCTION__, __LINE__); if (__before_loop(argc, argv) != 0) { _E("process-pool Initialization failed!"); return -1; @@ -3204,6 +3208,7 @@ int main(int argc, char **argv) #ifdef TIZEN_FEATURE_PRIORITY_CHANGE _set_priority(-12); #endif + _print_hwc_log("%s(%d): g_main_loop_run()", __FUNCTION__, __LINE__); g_main_loop_run(mainloop); __after_loop(); -- 2.7.4 From 92c5e0eb9d7e0c0507ba7dc070cae643c867eff1 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 19 Aug 2020 16:46:17 +0900 Subject: [PATCH 16/16] Release version 0.15.19 Changes: - Add hwc logs for performance check Change-Id: I212357fc657369556622a76f898a3699218c0a28 Signed-off-by: Hwankyu Jhun --- packaging/launchpad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 3ebc2ca..2994a02 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -1,6 +1,6 @@ Name: launchpad Summary: Launchpad for launching applications -Version: 0.15.18 +Version: 0.15.19 Release: 1 Group: Application Framework/Daemons License: Apache-2.0 -- 2.7.4