return MEMCG_ROOT;
}
-int cgroup_get_lowest_oom_score_adj(enum oom_level oom_level)
+int cgroup_get_lowest_oom_score_adj(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level)
{
switch (oom_level) {
case OOM_LEVEL_BACKGROUND_LEAST_RECENTLY_USED:
}
}
-int cgroup_get_highest_oom_score_adj(enum oom_level oom_level)
+int cgroup_get_highest_oom_score_adj(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level)
{
switch (oom_level) {
case OOM_LEVEL_BACKGROUND_LEAST_RECENTLY_USED:
#include "cgroup.h"
#include "const.h"
+/**
+ * FIXME: Remove this header from common code.
+ * Currently, some lowmem module code is located in common memory-cgroup.h.
+ * Therefore, no choice to include this header file before moving lowmem module
+ * code to correctt location.
+ */
+#include <system/syscommon-plugin-resourced-memory-lmk.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
MEM_LEVEL_MAX,
};
-enum oom_level {
- OOM_LEVEL_BACKGROUND_LEAST_RECENTLY_USED,
- OOM_LEVEL_BACKGROUND_MOST_RECENTLY_USED,
- OOM_LEVEL_FOREGROUND,
- OOM_LEVEL_FOREGROUND_AND_PROC,
- OOM_LEVEL_ALL,
-};
-
enum lowmem_control_type {
LOWMEM_MOVE_CGROUP,
LOWMEM_MANAGE_FOREGROUND,
* @param oom_level - oom level
* @return oom_score_adj
*/
-int cgroup_get_highest_oom_score_adj(enum oom_level oom_level);
+int cgroup_get_highest_oom_score_adj(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level);
/**
* @desc Get the lowest oom_score_adj of the cgroup type
* @param oom_level - oom level
* @return oom_score_adj
*/
-int cgroup_get_lowest_oom_score_adj(enum oom_level oom_level);
+int cgroup_get_lowest_oom_score_adj(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level);
struct memcg_info *get_memcg_info(int idx);
struct cgroup *get_cgroup_tree(int idx);
return victim_cnt;
}
-static int calculate_range_of_oom(enum oom_level oom_level, int *min, int *max)
+static int calculate_range_of_oom(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level,
+ int *min, int *max)
{
if (oom_level < OOM_LEVEL_BACKGROUND_LEAST_RECENTLY_USED
|| oom_level > OOM_LEVEL_ALL) {
unsigned int total_size_mb = 0;
unsigned int current_size = 0;
unsigned int reclaim_size_mb, shortfall_mb = 0;
- enum oom_level oom_level = ctl->oom_level;
+ enum syscommon_resourced_memory_lmk_oom_level oom_level =
+ ctl->oom_level;
available_mb = proc_get_mem_available();
reclaim_size_mb = ctl->size_mb > available_mb /* MB */
lowmem_change_memory_state(MEM_LEVEL_HIGH, 0);
}
-int lowmem_trigger_reclaim(int flags, int victims, enum oom_level oom_level, int threshold_mb)
+int lowmem_trigger_reclaim(int flags, int victims,
+ enum syscommon_resourced_memory_lmk_oom_level oom_level,
+ int threshold_mb)
{
struct lowmem_control *ctl = LOWMEM_NEW_REQUEST();
return 0;
}
-int lowmem_queue_new_request(unsigned int flags, enum oom_level oom_level,
- unsigned int size_mb, unsigned int count,
- void (*callback)(struct lowmem_control *))
+int lowmem_queue_new_request(unsigned int flags,
+ enum syscommon_resourced_memory_lmk_oom_level oom_level,
+ unsigned int size_mb, unsigned int count,
+ void (*callback)(struct lowmem_control *))
{
struct lowmem_control *ctl = LOWMEM_NEW_REQUEST();
return RESOURCED_ERROR_NONE;
}
-void lowmem_trigger_swap_reclaim(enum oom_level oom_level, unsigned long long swap_size_bytes)
+void lowmem_trigger_swap_reclaim(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level,
+ unsigned long long swap_size_bytes)
{
int size_mb, victims;
unsigned int lowmem_get_task_mem_usage_rss(const struct task_info *tsk);
void lowmem_trigger_swap(pid_t pid, char *path, bool move);
-int lowmem_trigger_reclaim(int flags, int victims, enum oom_level oom_level, int threshold);
-void lowmem_trigger_swap_reclaim(enum oom_level oom_level, unsigned long long swap_size_bytes);
+int lowmem_trigger_reclaim(int flags, int victims,
+ enum syscommon_resourced_memory_lmk_oom_level oom_level, int threshold);
+void lowmem_trigger_swap_reclaim(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level,
+ unsigned long long swap_size_bytes);
bool lowmem_fragmentated(void);
unsigned int lowmem_get_proactive_thres(void);
void lowmem_change_memory_state(int state, int force);
/* Processing flags*/
unsigned int flags;
/* Indictator for OOM level of targeted processes */
- enum oom_level oom_level;
+ enum syscommon_resourced_memory_lmk_oom_level oom_level;
/* Desired size to be restored - level to be reached (MB)*/
unsigned int size_mb;
};
int lowmem_worker_is_running();
-int lowmem_queue_new_request(unsigned int flags, enum oom_level oom_level,
- unsigned int size_mb, unsigned int count,
- void (*callback) (struct lowmem_control *));
+int lowmem_queue_new_request(unsigned int flags,
+ enum syscommon_resourced_memory_lmk_oom_level oom_level,
+ unsigned int size_mb, unsigned int count,
+ void (*callback) (struct lowmem_control *));
void lowmem_set_oom_popup(bool popup);
int lowmem_get_num_max_victims();
pthread_mutex_unlock(&swap_thread_queue.lock);
}
-static int swap_move_to_cgroup_by_pid(enum oom_level oom_level, pid_t pid)
+static int swap_move_to_cgroup_by_pid(
+ enum syscommon_resourced_memory_lmk_oom_level oom_level, pid_t pid)
{
int error;
int oom_score_adj;