Fix memory management feature 25/225825/5
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 25 Feb 2020 01:12:43 +0000 (10:12 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 25 Feb 2020 01:39:40 +0000 (10:39 +0900)
Change-Id: Icff15a3b5e9b16e3e3e0572a1cbdb8daa673e2b9
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/launchpad/src/launchpad.c
src/launchpad/src/launchpad_memory_monitor.c

index 487da6e7857e3f3db1f7310fb61f5a8c18d0c81e..4d8bbd36201272ad4ae95360849b4e90cf15d217 100644 (file)
@@ -1958,8 +1958,12 @@ static void __update_slot_state(candidate_process_context_t *cpc, int method,
                        __deactivate_slot(cpc);
                break;
        case METHOD_AVAILABLE_MEMORY:
+               if (force || cpc->activation_method & method)
+                       __activate_slot(cpc);
+               break;
        case METHOD_REQUEST:
-               __update_slot_state(cpc, METHOD_OUT_OF_MEMORY, force);
+               if (force || cpc->activation_method & method)
+                       __update_slot_state(cpc, METHOD_OUT_OF_MEMORY, force);
                break;
        default:
                __activate_slot(cpc);
@@ -2805,16 +2809,17 @@ static int __memory_monitor_cb(bool low_memory, void *user_data)
 {
        candidate_process_context_t *cpc;
 
+       _W("low memory(%s)", low_memory ? "true" : "false");
        cpc = __get_running_slot(false);
        if (!cpc && low_memory)
                return -1;
 
-       __update_slots_pss();
+       if (low_memory) {
+               __update_slots_pss();
 
-       candidate_slot_list = g_list_sort(candidate_slot_list, __compare_slot);
+               candidate_slot_list = g_list_sort(candidate_slot_list,
+                               __compare_slot);
 
-       _W("low memory(%s)", low_memory ? "true" : "false");
-       if (low_memory) {
                do {
                        __pause_last_running_slot(false);
 
index c6e0d2c04cae645b5a6b42ae50032784fc5cdfb7..dacf3ab76f51a31c46dae02fff35038f2f5efd57 100644 (file)
@@ -57,15 +57,11 @@ static gboolean __memory_check_cb(gpointer data)
        }
 
        if (__monitor.callback)  {
-               ret = __monitor.callback(mem_used_ratio > __monitor.threshold,
+               __monitor.callback(mem_used_ratio > __monitor.threshold,
                                __monitor.user_data);
-               if (ret == 0) {
-                       _W("Reset interval");
-                       __monitor.interval = __monitor.base_interval;
-               }
        }
 
-       _W("previous used ratio(%u), current used ratio(%u)",
+       _D("previous used ratio(%u), current used ratio(%u)",
                        __monitor.prev_used_ratio, mem_used_ratio);
 
        __monitor.prev_used_ratio = mem_used_ratio;