cpu : no more restrict CPU usage of media service app 48/120348/2
authorKichan Kwon <k_c.kwon@samsung.com>
Wed, 22 Mar 2017 10:19:57 +0000 (19:19 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Wed, 29 Mar 2017 04:55:42 +0000 (13:55 +0900)
- Media service apps can make a sound in background
- If these apps use limited CPU usage, sound distortion can be occurred
- Apps having media bg category will not be restricted

Change-Id: I9a6c1efc1e2169a1ccb0da6f61891837521feeef
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
src/cpu/cpu.c

index 98bf08cdf4bd1d92aff1fa902964115415ea137d..d8b0f4c732c33355dfe97d6b48b1da7acda93705 100644 (file)
@@ -237,12 +237,15 @@ static int cpu_service_state(void *data)
 {
        struct proc_status *ps = (struct proc_status *)data;
        assert(ps && ps->pai);
+       if (!ps->pai)
+               return RESOURCED_ERROR_NO_DATA;
 
        _D("service launch: pid = %d, appname = %s", ps->pid, ps->pai->appid);
-       if (ps->pai && CHECK_BIT(ps->pai->categories, PROC_BG_SYSTEM))
+       if (CHECK_BIT(ps->pai->categories, PROC_BG_SYSTEM) ||
+           CHECK_BIT(ps->pai->categories, PROC_BG_MEDIA))
                return RESOURCED_ERROR_NONE;
-       else
-               cpu_move_cgroup(ps->pid, CPU_BACKGROUND_GROUP);
+
+       cpu_move_cgroup(ps->pid, CPU_BACKGROUND_GROUP);
        return RESOURCED_ERROR_NONE;
 }
 
@@ -288,8 +291,13 @@ static int cpu_restrict_state(void *data)
        struct proc_status *ps = (struct proc_status *)data;
        assert(ps && ps->pai);
 
-       if (CHECK_BIT(ps->pai->categories, PROC_BG_MEDIA))
+       if (!ps->pai)
+               return RESOURCED_ERROR_NO_DATA;
+
+       if (CHECK_BIT(ps->pai->categories, PROC_BG_SYSTEM) ||
+           CHECK_BIT(ps->pai->categories, PROC_BG_MEDIA))
                return RESOURCED_ERROR_NONE;
+
        _D("app suspend: pid = %d, appname = %s", ps->pid, ps->pai->appid);
        cpu_move_cgroup_foreach(ps->pid, ps->pai, CPU_CPUQUOTA_GROUP);
        return RESOURCED_ERROR_NONE;