<action> can be: broadcast, reclaim, kill, ignore
Example: BackgroundPerAppLimitAction=768MB,kill
-1.5 Section: CpuThrottling
+1.5 Section: MemoryLMKGovernor
+=============================
+Key: ForegroundAppListPostGovernor
+Value: (yes|1|ok|on|no|0|off)
+Comment: Specify whether LMK foregroud app list post governor is turned on or not.
+ If (yes|1|ok|on), rearrange LMK victim list according to the post governor.
+ If (no|0|off), skip the corresponding post governor.
+
+Key: WorkingSetSizePostGovernor
+Value: (yes|1|ok|on|no|0|off)
+Comment: Specify whether LMK working set size post governor is turned on or not.
+ If (yes|1|ok|on), rearrange LMK victim list according to the post governor.
+ If (no|0|off), skip the corresponding post governor.
+
+1.6 Section: CpuThrottling
==========================
Key: CpuSched
Value: <schedule scheme>
<priority> is an decimal integer value.
Example: CpuRTPriority=50
+2.12 Section: CpuBoostingStallGovernor
+======================================
+Key: CpuBoostingStallGovernor
+Value: (yes|1|ok|on|no|0|off)
+Comment: Specify whether cpu boosting stall governor is turned on or not.
+ If (yes|1|ok|on), decrease cpu boosting level according to the governor rule.
+ If (no|0|off), skip the corresponding governor.
+
3. monitor.conf
===============
[MemoryThrottling]
ThrottlingLimit= 80%
+[MemoryLMKGovernor]
+ForegroundAppListPostGovernor=no
+WorkingSetSizePostGovernor=no
+
[CpuThrottling]
#CpuSched=idle
#CpuNice=19
[CpuBoostingLevelWeak]
CpuSched=other
CpuNice=-20 # Priority=100
+
+[CpuBoostingStallGovernor]
+CpuBoostingStallGovernor=no
#include "compact-common.h"
#include "cpu-common.h"
#include "procfs.h"
+#include "memory-common.h"
#define MAX_SECTION 64
_E("[CONFIG] Unknown configuration name (%s) and value (%s) on section (%s)",
result->name, result->value, result->section);
}
+ } else if (!strncmp(result->section, CPU_BOOSTING_STALL_GOVERNOR_SECTION,
+ strlen(CPU_BOOSTING_STALL_GOVERNOR_SECTION) + 1)) {
+ if (!strncmp(result->name, CPU_BOOSTING_STALL_GOVERNOR_NAME_CONF,
+ strlen(CPU_BOOSTING_STALL_GOVERNOR_NAME_CONF) + 1)) {
+ if (config_parse_bool(result->value))
+ cpu_boosting_enable_cpu_stall_handler();
+ }
}
else {
_E("[CONFIG] Unknown section name (%s) and value (%s) on section (%s)",
return error;
}
+ else if (!strncmp(result->section, MEMORY_LMK_GOVERNOR_SECTION,
+ strlen(MEMORY_LMK_GOVERNOR_SECTION) + 1)) {
+ int error = RESOURCED_ERROR_NONE;
+
+ if (!strncmp(result->name, FOREGROUND_APP_LIST_POST_GOVERNOR_NAME_CONF,
+ strlen(FOREGROUND_APP_LIST_POST_GOVERNOR_NAME_CONF) + 1)) {
+ if (config_parse_bool(result->value))
+ proc_enable_foreground_app_list_status();
+ } else if (!strncmp(result->name, WORKING_SET_SIZE_POST_GOVERNOR_NAME_CONF,
+ strlen(WORKING_SET_SIZE_POST_GOVERNOR_NAME_CONF) + 1)) {
+ if (config_parse_bool(result->value))
+ lmk_governor_post_enable_wss();
+ } else {
+ _E("[CONFIG] Unknown configuration name (%s) and value (%s) "
+ "on section (%s)",
+ result->name, result->value, result->section);
+ }
+
+ return error;
+ }
else if (!strncmp(result->section, CPU_THROTTLING_SECTION,
strlen(CPU_THROTTLING_SECTION)+1)) {
if (!cpu_throttling_conf->enable)
#define MEMORY_APP_TYPE_LIMIT_SECTION "MemoryAppTypeLimit"
#define MEMORY_APP_STATUS_LIMIT_SECTION "MemoryAppStatusLimit"
#define MEMORY_THROTTLING_SECTION "MemoryThrottling"
+#define MEMORY_LMK_GOVERNOR_SECTION "MemoryLMKGovernor"
#define CPU_THROTTLING_SECTION "CpuThrottling"
#define OLD_VIP_GROUP_SECTION "VIP_GROUP"
#define CPU_BOOSTING_LEVEL_STRONG_SECTION "CpuBoostingLevelStrong"
#define CPU_BOOSTING_LEVEL_MEDIUM_SECTION "CpuBoostingLevelMedium"
#define CPU_BOOSTING_LEVEL_WEAK_SECTION "CpuBoostingLevelWeak"
+#define CPU_BOOSTING_STALL_GOVERNOR_SECTION "CpuBoostingStallGovernor"
/* process.conf */
#define FOREGROUND_APP_LIST_SECTION "ForegroundAppList"
#define WIDGET_PER_APP_LIMIT_ACTION_NAME_CONF "WidgetPerAppLimitAction"
#define GUI_PER_APP_LIMIT_ACTION_NAME_CONF "GUIPerAppLimitAction"
#define BACKGROUND_PER_APP_LIMIT_ACTION_NAME_CONF "BackgroundPerAppLimitAction"
+#define FOREGROUND_APP_LIST_POST_GOVERNOR_NAME_CONF "ForegroundAppListPostGovernor"
+#define WORKING_SET_SIZE_POST_GOVERNOR_NAME_CONF "WorkingSetSizePostGovernor"
/* CPU specific configuration name */
#define CPU_SCHED_NAME_CONF "CpuSched"
#define FRAG_LEVEL_NAME_CONF "FragLevel"
#define FOREGROUND_APPS_NAME_CONF "ForegroundApps"
#define CPU_AFFINITY_NAME_CONF "CpuAffinity"
+#define CPU_BOOSTING_STALL_GOVERNOR_NAME_CONF "CpuBoostingStallGovernor"
/* configuration value */
#define CGROUP_LOW_VALUE_CONF "lowest"