process: freezer: Remove direct access from process to freezer 77/320477/4
authorUnsung Lee <unsung.lee@samsung.com>
Fri, 15 Nov 2024 08:51:50 +0000 (17:51 +0900)
committerUnsung Lee <unsung.lee@samsung.com>
Mon, 25 Nov 2024 02:33:13 +0000 (11:33 +0900)
Remove direct header include and function call from process modlue to freezer.
This is problem because process can access and call all functions in defined freezer.h.
It means that there is strong dependency from process to freezer.
It is essential procedure to remove dependency between different modules.
To achieve this goal, process module can access only freezer-common instead of freezer.

Change-Id: I48e660ac554a156001cf6e9b97563acc82c31f9b
Signed-off-by: Unsung Lee <unsung.lee@samsung.com>
src/common/freezer-common.c
src/common/proc-common.h
src/process/proc-main.c
src/process/proc-process.c

index 6c95e2eeff91578a18413844ce491a1dd023a1e2..5aab298d85599c462173c374343ca58f6f4ac046 100644 (file)
@@ -41,12 +41,6 @@ int resourced_freezer_proc_late_control(void)
        return FREEZER_LATE_CONTROL_DISABLED;
 }
 
-/**
- * FIXME: This function plays the same role as the proc_get_freezer_status() function
- * in src/process/proc-main.c.
- * It is a problem that arises because the process module accesses the freezer module.
- * When removing the dependency between them, one of these functions needs to be removed.
- */
 int freezer_common_get_freezer_status(void)
 {
        static const struct module_ops* freezer_module_ops;
index 4c8f34608a0335d9e5b7b6c2a1a4eb9513fb9f38..7fcbc29d116b1611e0fdd0ade0d94fa55a7e40f9 100644 (file)
@@ -250,8 +250,6 @@ struct proc_app_info {
 };
 
 //int proc_priority_set_fixed(void *data);
-int proc_get_freezer_status(void);
-
 struct proc_app_info *find_app_info(const pid_t pid);
 struct proc_app_info *find_app_info_by_appid(const char *appid);
 
index d5c357f9986cb97cd5429535a72176a1ed8cec84..83f7f296765afeda65b777ed222bf611993efffd 100644 (file)
@@ -34,7 +34,6 @@
 #include <pthread.h>
 
 
-#include "freezer.h"
 #include "notifier.h"
 #include "proc-process.h"
 #include "proc-main.h"
@@ -61,7 +60,6 @@
 #endif
 #endif
 
-static const struct module_ops *freezer;
 static GSList *proc_module;  /* proc sub-module list */
 
 #define LOG_PREFIX "resourced"
@@ -1449,22 +1447,6 @@ static int resourced_proc_restore(void *data)
        return RESOURCED_ERROR_NONE;
 }
 
-int proc_get_freezer_status()
-{
-       int ret = FREEZER_COMMON_CGROUP_STATE_DISABLED;
-       struct freezer_status_data f_data;
-       if (!freezer) {
-               freezer = find_module("freezer");
-               if (!freezer)
-                       return ret;
-       }
-
-       f_data.type = GET_STATUS;
-       if (freezer->status)
-               ret = freezer->status(&f_data);
-       return ret;
-}
-
 int proc_get_appflag(const pid_t pid)
 {
        struct proc_app_info *pai =
@@ -1576,7 +1558,7 @@ void proc_set_group(pid_t ownerpid, pid_t childpid, char *pkgname)
 
 bool proc_check_lru_suspend(int val, int lru)
 {
-       if (proc_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
+       if (freezer_common_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
                return false;
 
        if ((PROC_BACKGROUND + val) == lru)
@@ -1677,7 +1659,7 @@ int resourced_proc_status_change(int status, pid_t pid, char *app_name, char *pk
                        proc_set_oom_score_adj(pid, OOMADJ_FOREGRD_UNLOCKED, ps.pai);
                        resourced_notify(RESOURCED_NOTIFIER_WIDGET_FOREGRD, &ps);
                } else {
-                       if (proc_get_freezer_status() != FREEZER_COMMON_CGROUP_STATE_DISABLED &&
+                       if (freezer_common_get_freezer_status() != FREEZER_COMMON_CGROUP_STATE_DISABLED &&
                                        apptype == PROC_TYPE_GUI)
                                resourced_notify(RESOURCED_NOTIFIER_APP_WAKEUP, &ps);
                        snprintf(pidbuf, sizeof(pidbuf), "%d", pid);
@@ -1715,7 +1697,7 @@ int resourced_proc_status_change(int status, pid_t pid, char *app_name, char *pk
                if (ps.pai->categories)
                        proc_set_runtime_exclude_list(pid, PROC_EXCLUDE, ps.pai);
                resourced_notify(RESOURCED_NOTIFIER_APP_LAUNCH, &ps);
-               if (proc_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
+               if (freezer_common_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
                        break;
                ppi = ps.pai->program;
                if (ppi->svc_list)
@@ -1760,7 +1742,7 @@ int resourced_proc_status_change(int status, pid_t pid, char *app_name, char *pk
                        resourced_notify(RESOURCED_NOTIFIER_APP_RESUME, &ps);
                        proc_set_oom_score_adj(pid, OOMADJ_INIT, ps.pai);
                }
-               if (proc_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
+               if (freezer_common_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
                        break;
                if (apptype == PROC_TYPE_GUI)
                        resourced_notify(RESOURCED_NOTIFIER_APP_WAKEUP, &ps);
@@ -1807,7 +1789,7 @@ int resourced_proc_status_change(int status, pid_t pid, char *app_name, char *pk
                        if (ret != 0)
                                break;
 
-                       if (proc_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
+                       if (freezer_common_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
                                break;
                        if (resourced_freezer_proc_late_control())
                                break;
@@ -1828,7 +1810,7 @@ int resourced_proc_status_change(int status, pid_t pid, char *app_name, char *pk
                ret = proc_sweep_memory(PROC_SWEEP_EXCLUDE_ACTIVE, pid);
                break;
        case PROC_CGROUP_SET_NOTI_REQUEST:
-               if (!app_name || proc_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
+               if (!app_name || freezer_common_get_freezer_status() == FREEZER_COMMON_CGROUP_STATE_DISABLED)
                        break;
                ps.pai = find_app_info_by_appid(app_name);
                if (!ps.pai) {
index 2217eb97e4a9e1d44418072b34ba2c077385ae31..4701b1d66ba32ee6fa9c5843bad497810734df35 100644 (file)
@@ -26,7 +26,7 @@
 #include <dirent.h>
 #include <sys/types.h>
 
-#include "freezer.h"
+#include "freezer-common.h"
 #include "resourced.h"
 #include "trace.h"
 #include "proc-main.h"
@@ -123,7 +123,7 @@ static int proc_backgrd_manage(int currentpid, int active, int oom_score_adj, st
        struct proc_program_info *ppi;
        int is_favorite = 0;
 
-       if (proc_get_freezer_status() != FREEZER_COMMON_CGROUP_STATE_DISABLED)
+       if (freezer_common_get_freezer_status() != FREEZER_COMMON_CGROUP_STATE_DISABLED)
                freeze_val = resourced_freezer_proc_late_control();
 
        if (!pai) {