lowmem-controller: Move critical memory action from lowmem to controller 81/290581/18
authorSangYoun Kwak <sy.kwak@samsung.com>
Wed, 29 Mar 2023 06:48:42 +0000 (15:48 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Mon, 10 Apr 2023 09:04:30 +0000 (18:04 +0900)
For modulization, critical memory action is moved from lowmem.c(core) to
lowmem-controller.c(controller) and this action will be assigned to
lowmem.c by the initializer of controller.

Change-Id: Ied7e33d21dd2f6055ad45cbd576521fa595d68a8
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
src/resource-limiter/memory/lowmem-controller.c
src/resource-limiter/memory/lowmem.c

index 8066072..7e9213e 100644 (file)
@@ -384,10 +384,13 @@ static int critical_mem_act(void *data)
 {
        int scan_mode = KSM_SCAN_FULL;
 
-       if (dedup_prepare() < 0)
-               return RESOURCED_ERROR_FAIL;
+       if (dedup_prepare() >= 0)
+               resourced_notify(RESOURCED_NOTIFIER_DEDUP_SCAN, &scan_mode);
 
-       resourced_notify(RESOURCED_NOTIFIER_DEDUP_SCAN, &scan_mode);
+       lowmem_change_lowmem_state(MEM_LEVEL_CRITICAL);
+       resourced_notify(RESOURCED_NOTIFIER_SWAP_COMPACT,
+                       (void *)SWAP_COMPACT_MEM_LEVEL_CRITICAL);
+       lowmem_memory_level_send_system_event(MEM_LEVEL_CRITICAL);
 
        return RESOURCED_ERROR_NONE;
 }
index 3bf9bea..e972d2f 100644 (file)
@@ -276,7 +276,6 @@ static void lowmem_request_destroy(gpointer data)
 
 /* low memory action function for cgroup */
 /* low memory action function */
-static void swap_compact_act(void);
 static void lmk_act(void);
 
 struct lowmem_controller_ops {
@@ -1029,13 +1028,6 @@ void lowmem_memory_level_send_system_event(int lv)
        bundle_free(b);
 }
 
-static void swap_compact_act(void)
-{
-       lowmem_change_lowmem_state(MEM_LEVEL_CRITICAL);
-       resourced_notify(RESOURCED_NOTIFIER_SWAP_COMPACT, (void *)SWAP_COMPACT_MEM_LEVEL_CRITICAL);
-       lowmem_memory_level_send_system_event(MEM_LEVEL_CRITICAL);
-}
-
 static void medium_cb(struct lowmem_control *ctl)
 {
        if (ctl->status == LOWMEM_RECLAIM_DONE)
@@ -1109,19 +1101,12 @@ void lowmem_trigger_memory_state_action(int mem_state)
        case MEM_LEVEL_HIGH:
        case MEM_LEVEL_MEDIUM:
        case MEM_LEVEL_LOW:
-               assert(lowmem_actions[mem_state].governor != NULL);
-               assert(lowmem_actions[mem_state].action != NULL);
-               if (lowmem_actions[mem_state].governor(NULL) < 0)
-                       break;
-               lowmem_actions[mem_state].action(NULL);
-               break;
        case MEM_LEVEL_CRITICAL:
                assert(lowmem_actions[mem_state].governor != NULL);
                assert(lowmem_actions[mem_state].action != NULL);
                if (lowmem_actions[mem_state].governor(NULL) < 0)
                        break;
                lowmem_actions[mem_state].action(NULL);
-               swap_compact_act();
                break;
        case MEM_LEVEL_OOM:
                lmk_act();