cpu : tidy up configuration 11/74111/5
authorKichan Kwon <k_c.kwon@samsung.com>
Mon, 13 Jun 2016 01:48:43 +0000 (10:48 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Wed, 6 Jul 2016 02:07:23 +0000 (11:07 +0900)
- Remove unused config keys
- X_CPU_SHARE : absolute -> relative cpu share of root
- QUOTA_MAX_BANDWIDTH : max relative cpu time

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

index dbbdaeb..fd28340 100644 (file)
 #define CPU_BACKGROUND_GROUP CPU_DEFAULT_CGROUP"/background"
 #define CPU_CPUQUOTA_GROUP CPU_DEFAULT_CGROUP"/quota"
 #define CPU_CONTROL_BANDWIDTH  "/cpu.cfs_quota_us"
+#define CPU_CONTROL_FULL_BANDWIDTH "/cpu.cfs_period_us"
 #define CPU_CONF_FILE     RD_CONFIG_FILE(cpu)
 #define CPU_CONF_SECTION       "CONTROL"
 #define CPU_CONF_PREDEFINE     "PREDEFINE"
 #define CPU_CONF_BOOTING       "BOOTING_PREDEFINE"
-#define CPU_CONF_SYSTEM        "SYSTEM_PREDEFINE"
-#define CPU_CONF_HOME          "HOME_PREDEFINE"
 #define CPU_CONF_WRT   "WRT_PREDEFINE"
 #define CPU_CONF_LAZY  "LAZY_PREDEFINE"
 #define CPU_SHARE      "/cpu.shares"
@@ -141,6 +140,19 @@ static void cpu_check_cpuquota(void)
                bCPUQuota = true;
 }
 
+static int get_relative_value(const char *cgroup_name,
+               const char *file_name, int percent)
+{
+       unsigned int val;
+
+       if (cgroup_read_node(cgroup_name, file_name, &val) != RESOURCED_ERROR_NONE) {
+               _E("Can't read %s%s. value is set to 1000", cgroup_name, file_name);
+               val = 1000;
+       }
+
+       return val * percent / 100;
+}
+
 static int load_cpu_config(struct parse_result *result, void *user_data)
 {
        pid_t pid = 0, value;
@@ -181,37 +193,24 @@ static int load_cpu_config(struct parse_result *result, void *user_data)
                        def_list.control[def_list.num].pid = pid;
                        def_list.control[def_list.num++].type = SET_LAZY;
                }
-       } else if (!strncmp(result->name, CPU_CONF_SYSTEM, strlen(CPU_CONF_SYSTEM)+1)) {
-               pid = find_pid_from_cmdline(result->value);
-               if (pid > 0)
-                       cpu_move_cgroup(pid, CPU_BACKGROUND_GROUP);
-       } else if (!strncmp(result->name, CPU_CONF_HOME, strlen(CPU_CONF_HOME)+1)) {
-               pid = find_pid_from_cmdline(result->value);
-               if (pid > 0) {
-                       setpriority(PRIO_PROCESS, pid, CPU_HIGHAPP_PRI);
-                       def_list.control[def_list.num].pid = pid;
-                       def_list.control[def_list.num++].type = SET_BOOTING;
-               }
        } else if (!strncmp(result->name, "BACKGROUND_CPU_SHARE", strlen("BACKGROUND_CPU_SHARE")+1)) {
                value = atoi(result->value);
-               if (value) {
-                       cgroup_write_node(CPU_BACKGROUND_GROUP, CPU_SHARE, value);
-               }
-               if (cpu_quota_enabled())
-                       cgroup_write_node(CPU_CPUQUOTA_GROUP, CPU_SHARE, value);
-       } else if (!strncmp(result->name, "BACKGROUND_CPU_MAX_QUOTA", strlen("BACKGROUND_CPU_MAX_QUOTA")+1)) {
+               if (value)
+                       cgroup_write_node(CPU_BACKGROUND_GROUP, CPU_SHARE,
+                                       get_relative_value(CPU_DEFAULT_CGROUP, CPU_SHARE, value));
+       } else if (!strncmp(result->name, "QUOTA_CPU_SHARE", strlen("QUOTA_CPU_SHARE")+1)) {
                value = atoi(result->value);
-               if (value && cpu_quota_enabled()) {
-                       value *= CPU_QUOTA_PERIOD_USEC;
-               }
-       } else if (!strncmp(result->name, "BACKGROUND_CPU_MIN_QUOTA", strlen("BACKGROUND_CPU_MIN_QUOTA")+1)) {
+               if (value && cpu_quota_enabled())
+                       cgroup_write_node(CPU_CPUQUOTA_GROUP, CPU_SHARE,
+                                       get_relative_value(CPU_DEFAULT_CGROUP, CPU_SHARE, value));
+       } else if (!strncmp(result->name, "QUOTA_MAX_BANDWIDTH", strlen("QUOTA_MAX_BANDWIDTH")+1)) {
                value = atoi(result->value);
-               if (value && cpu_quota_enabled()) {
-                       value *= CPU_QUOTA_PERIOD_USEC;
-                       cgroup_write_node(CPU_CPUQUOTA_GROUP,
-                                   CPU_CONTROL_BANDWIDTH, value);
-               }
+               if (value && cpu_quota_enabled())
+                       cgroup_write_node(CPU_CPUQUOTA_GROUP, CPU_CONTROL_BANDWIDTH,
+                                       get_relative_value(CPU_CPUQUOTA_GROUP,
+                                               CPU_CONTROL_FULL_BANDWIDTH, value));
        }
+
        return RESOURCED_ERROR_NONE;
 }
 
index c13eedf..a166935 100644 (file)
@@ -7,6 +7,9 @@ BOOTING_PREDEFINE=quickpanel
 WRT_PREDEFINE=wrt_launchpad_daemon
 BOOTING_PREDEFINE=volume
 BOOTING_PREDEFINE=nvitemd
+# relative cpu share
+# ROOT_CPU_SHARE=100 : fixed
 BACKGROUND_CPU_SHARE=50
-BACKGROUND_CPU_MAX_QUOTA=50
-BACKGROUND_CPU_MIN_QUOTA=10
+QUOTA_CPU_SHARE=25
+# max relative cpu time (max=100)
+QUOTA_MAX_BANDWIDTH=100