/* setup memcg parameters depending on total ram size. */
static void setup_memcg_params(void)
{
- unsigned long long total_ramsize = BYTE_TO_MBYTE(totalram);
+ unsigned long long total_ramsize;
+
+ get_total_memory();
+ total_ramsize = BYTE_TO_MBYTE(totalram);
_D("Total: %llu MB", total_ramsize);
if (total_ramsize <= MEM_SIZE_64) {
_I("[DEBUG] prefix of memlimit memps is %s", memlog_prefix[MEMLOG_MEMPS_MEMLIMIT]);
/* print info of VIP_PROCESS section */
+ if (!vip_apps)
+ return;
+
_I("[DEBUG] vip app list is");
for (int vip_index = 0; vip_index < vip_apps->len; vip_index++) {
char *vip_name = g_ptr_array_index(vip_apps, vip_index);
ret = cgroup_make_full_subdir(MEMCG_PATH);
ret_value_msg_if(ret < 0, ret, "memory cgroup init failed\n");
memcg_params_init();
- setup_memcg_params();
- get_total_memory();
+ setup_memcg_params();
/* allocate vip list memory */
if (allocate_vip_app_list() != RESOURCED_ERROR_NONE)
load_configs(MEM_CONF_FILE);
/* parse /etc/resourced/limiter.conf.d/xxx configurations*/
load_per_vendor_configs();
- print_mem_configs();
/* vip_list is only needed at the set_vip_list */
if (set_vip_list() != RESOURCED_ERROR_NONE)
_E("set_vip_list FAIL");
- free_vip_app_list();
/* this function should be called after parsing configurations */
memcg_write_params();
+ print_mem_configs();
+ free_vip_app_list();
/* make a worker thread called low memory killer */
ret = lowmem_activate_worker();
if (ret) {
- _E("oom thread create failed\n");
+ _E("[DEBUG] oom thread create failed\n");
return ret;
}
/* register threshold and event fd */
ret = lowmem_press_setup_eventfd();
if (ret) {
- _E("eventfd setup failed");
+ _E("[DEBUG] eventfd setup failed");
return ret;
}