diff --git a/app/src/main/assets/kr-script/mtk/mtk.sh b/app/src/main/assets/kr-script/mtk/mtk.sh index 16caae3e9..f340e5ce3 100644 --- a/app/src/main/assets/kr-script/mtk/mtk.sh +++ b/app/src/main/assets/kr-script/mtk/mtk.sh @@ -139,9 +139,9 @@ xml_start ppm_render group_end - # group_start 'GED' - # ged_render - # group_end + group_start 'GED' + ged_render + group_end if [[ -f /proc/gpufreq/gpufreq_opp_freq ]] then diff --git a/app/src/main/assets/powercfg/mt6768/active-base.sh b/app/src/main/assets/powercfg/mt6768/active-base.sh new file mode 100644 index 000000000..9034a79b9 --- /dev/null +++ b/app/src/main/assets/powercfg/mt6768/active-base.sh @@ -0,0 +1,18 @@ +function ged() { + echo $2 > /sys/module/ged/parameters/$1 +} + +ged boost_gpu_enable 0 +ged enable_cpu_boost 0 +ged enable_gpu_boost 0 +ged ged_boost_enable 0 +ged ged_force_mdp_enable 0 +ged ged_smart_boost 0 +ged gx_force_cpu_boost 0 +ged gpu_dvfs_enable 1 +ged gx_3D_benchmark_on 0 +ged gx_dfps 1 +ged gx_game_mode 0 + +echo 0 > /sys/kernel/debug/eara_thermal/enable + diff --git a/app/src/main/assets/powercfg/mt6768/active.sh b/app/src/main/assets/powercfg/mt6768/active.sh new file mode 100644 index 000000000..fb8ee67cc --- /dev/null +++ b/app/src/main/assets/powercfg/mt6768/active.sh @@ -0,0 +1,186 @@ +function ppm() { + echo $2 > "/proc/ppm/$1" +} + +function policy() { + echo $2 > "/proc/ppm/policy/$1" +} + +function lock_freq() { + policy ut_fix_freq_idx "$1 $2" +} + +function max_freq() { + policy hard_userlimit_max_cpu_freq "0 $1" + policy hard_userlimit_max_cpu_freq "1 $2" +} + +function min_freq() { + policy hard_userlimit_min_cpu_freq "0 $1" + policy hard_userlimit_min_cpu_freq "1 $2" +} + +# GPU FREQ +function gpu_dvfs() { + # echo $1 > /sys/module/ged/parameters/gpu_dvfs_enable + echo $1 > /proc/mali/dvfs_enable + if [[ "$1" == "1" ]]; then + echo 0 > /proc/gpufreq/gpufreq_opp_freq + elif [[ "$2" != "" ]]; then + echo "$2" > /proc/gpufreq/gpufreq_opp_freq + else + echo 925000 > /proc/gpufreq/gpufreq_opp_freq + fi +} + +function cpuset() { + echo $1 > /dev/cpuset/background/cpus + echo $2 > /dev/cpuset/system-background/cpus + echo $3 > /dev/cpuset/foreground/cpus + echo $4 > /dev/cpuset/top-app/cpus + echo $5 > /dev/cpuset/restricted/cpus +} + +function eas() { + echo ${1}000 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us + echo ${2}000 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us +} + +function cpufreq() { + # 0 Normal, 1 Low Power, 2 Just Make, 3 Perf + echo $1 > /proc/cpufreq/cpufreq_power_mode + # 0 Normal, 1 Perf + echo $1 > /proc/cpufreq/cpufreq_cci_mode +} + +action=$1 + +for i in 0 1 2 3 4 5 6 7 +do + echo 1 > /sys/devices/system/cpu/cpu$i/online +done + +init () { + local dir=$(cd $(dirname $0); pwd) + if [[ -f "$dir/powercfg-base.sh" ]]; then + sh "$dir/powercfg-base.sh" + elif [[ -f '/data/powercfg-base.sh' ]]; then + sh /data/powercfg-base.sh + fi +} +if [[ "$action" = "init" ]]; then + init + exit 0 +fi + +# policy_status +# [0] PPM_POLICY_PTPOD: enabled +# [1] PPM_POLICY_UT: enabled +# [2] PPM_POLICY_FORCE_LIMIT: enabled +# [3] PPM_POLICY_PWR_THRO: enabled +# [4] PPM_POLICY_THERMAL: enabled +# [9] PPM_POLICY_SYS_BOOST: disabled +# [6] PPM_POLICY_HARD_USER_LIMIT: enabled +# [7] PPM_POLICY_USER_LIMIT: enabled +# [8] PPM_POLICY_LCM_OFF: disabled +# +# Usage: echo <1/0> > /proc/ppm/policy_status + +# dump_cluster_0_dvfs_table +# 1800000 1625000 1500000 1450000 1375000 1325000 1275000 1175000 1100000 1050000 999000 950000 900000 850000 774000 500000 +# dump_cluster_1_dvfs_table +# 2000000 1950000 1900000 1850000 1800000 1710000 1621000 1532000 1443000 1354000 1295000 1176000 1087000 998000 909000 850000 + +if [[ "$action" = "powersave" ]]; then + #powersave + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 0" + ppm policy_status "3 0" + ppm policy_status "4 1" + ppm policy_status "7 0" + ppm policy_status "9 0" + + min_freq 500000 850000 + max_freq 1500000 1800000 + + gpu_dvfs 1 + + cpuset 0-1 0-3 0-7 0-7 0-3 + + echo 1 > /proc/cpuidle/enable + eas 0 2 + cpufreq 1 0 + + exit 0 +elif [[ "$action" = "balance" ]]; then + #balance + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 0" + ppm policy_status "3 0" + ppm policy_status "4 1" + ppm policy_status "7 0" + ppm policy_status "9 0" + + min_freq 500000 850000 + max_freq 1800000 1950000 + + gpu_dvfs 1 + + cpuset 0-1 0-3 0-7 0-7 0-3 + + echo 1 > /proc/cpuidle/enable + eas 0 0 + cpufreq 0 0 + + exit 0 +elif [[ "$action" = "performance" ]]; then + #performance + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 1" + ppm policy_status "3 0" + ppm policy_status "4 1" + ppm policy_status "7 0" + ppm policy_status "9 1" + + min_freq 1050000 1354000 + max_freq 1800000 2000000 + + gpu_dvfs 0 850000 + + cpuset 0-1 0-3 0-7 0-7 0-3 + + echo 1 > /proc/cpuidle/enable + eas 20 0 + cpufreq 3 1 + + exit 0 +elif [[ "$action" = "fast" ]]; then + #fast + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 1" + ppm policy_status "3 0" + ppm policy_status "4 0" + ppm policy_status "7 0" + ppm policy_status "9 1" + + min_freq 1500000 1800000 + max_freq 1800000 2000000 + + gpu_dvfs 0 925000 + + cpuset 0 0-3 0-7 0-7 0-3 + + echo 0 > /proc/cpuidle/enable + eas 50 0 + cpufreq 3 1 + + exit 0 +fi diff --git a/app/src/main/assets/powercfg/mt6768/conservative-base.sh b/app/src/main/assets/powercfg/mt6768/conservative-base.sh new file mode 100644 index 000000000..4e9c37c98 --- /dev/null +++ b/app/src/main/assets/powercfg/mt6768/conservative-base.sh @@ -0,0 +1,17 @@ +function ged() { + echo $2 > /sys/module/ged/parameters/$1 +} + +ged boost_gpu_enable 0 +ged enable_cpu_boost 0 +ged enable_gpu_boost 0 +ged ged_boost_enable 0 +ged ged_force_mdp_enable 0 +ged ged_smart_boost 0 +ged gx_force_cpu_boost 0 +ged gpu_dvfs_enable 1 +ged gx_3D_benchmark_on 0 +ged gx_dfps 1 +ged gx_game_mode 0 + +echo 0 > /sys/kernel/debug/eara_thermal/enable diff --git a/app/src/main/assets/powercfg/mt6768/conservative.sh b/app/src/main/assets/powercfg/mt6768/conservative.sh new file mode 100644 index 000000000..fb8ee67cc --- /dev/null +++ b/app/src/main/assets/powercfg/mt6768/conservative.sh @@ -0,0 +1,186 @@ +function ppm() { + echo $2 > "/proc/ppm/$1" +} + +function policy() { + echo $2 > "/proc/ppm/policy/$1" +} + +function lock_freq() { + policy ut_fix_freq_idx "$1 $2" +} + +function max_freq() { + policy hard_userlimit_max_cpu_freq "0 $1" + policy hard_userlimit_max_cpu_freq "1 $2" +} + +function min_freq() { + policy hard_userlimit_min_cpu_freq "0 $1" + policy hard_userlimit_min_cpu_freq "1 $2" +} + +# GPU FREQ +function gpu_dvfs() { + # echo $1 > /sys/module/ged/parameters/gpu_dvfs_enable + echo $1 > /proc/mali/dvfs_enable + if [[ "$1" == "1" ]]; then + echo 0 > /proc/gpufreq/gpufreq_opp_freq + elif [[ "$2" != "" ]]; then + echo "$2" > /proc/gpufreq/gpufreq_opp_freq + else + echo 925000 > /proc/gpufreq/gpufreq_opp_freq + fi +} + +function cpuset() { + echo $1 > /dev/cpuset/background/cpus + echo $2 > /dev/cpuset/system-background/cpus + echo $3 > /dev/cpuset/foreground/cpus + echo $4 > /dev/cpuset/top-app/cpus + echo $5 > /dev/cpuset/restricted/cpus +} + +function eas() { + echo ${1}000 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us + echo ${2}000 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us +} + +function cpufreq() { + # 0 Normal, 1 Low Power, 2 Just Make, 3 Perf + echo $1 > /proc/cpufreq/cpufreq_power_mode + # 0 Normal, 1 Perf + echo $1 > /proc/cpufreq/cpufreq_cci_mode +} + +action=$1 + +for i in 0 1 2 3 4 5 6 7 +do + echo 1 > /sys/devices/system/cpu/cpu$i/online +done + +init () { + local dir=$(cd $(dirname $0); pwd) + if [[ -f "$dir/powercfg-base.sh" ]]; then + sh "$dir/powercfg-base.sh" + elif [[ -f '/data/powercfg-base.sh' ]]; then + sh /data/powercfg-base.sh + fi +} +if [[ "$action" = "init" ]]; then + init + exit 0 +fi + +# policy_status +# [0] PPM_POLICY_PTPOD: enabled +# [1] PPM_POLICY_UT: enabled +# [2] PPM_POLICY_FORCE_LIMIT: enabled +# [3] PPM_POLICY_PWR_THRO: enabled +# [4] PPM_POLICY_THERMAL: enabled +# [9] PPM_POLICY_SYS_BOOST: disabled +# [6] PPM_POLICY_HARD_USER_LIMIT: enabled +# [7] PPM_POLICY_USER_LIMIT: enabled +# [8] PPM_POLICY_LCM_OFF: disabled +# +# Usage: echo <1/0> > /proc/ppm/policy_status + +# dump_cluster_0_dvfs_table +# 1800000 1625000 1500000 1450000 1375000 1325000 1275000 1175000 1100000 1050000 999000 950000 900000 850000 774000 500000 +# dump_cluster_1_dvfs_table +# 2000000 1950000 1900000 1850000 1800000 1710000 1621000 1532000 1443000 1354000 1295000 1176000 1087000 998000 909000 850000 + +if [[ "$action" = "powersave" ]]; then + #powersave + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 0" + ppm policy_status "3 0" + ppm policy_status "4 1" + ppm policy_status "7 0" + ppm policy_status "9 0" + + min_freq 500000 850000 + max_freq 1500000 1800000 + + gpu_dvfs 1 + + cpuset 0-1 0-3 0-7 0-7 0-3 + + echo 1 > /proc/cpuidle/enable + eas 0 2 + cpufreq 1 0 + + exit 0 +elif [[ "$action" = "balance" ]]; then + #balance + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 0" + ppm policy_status "3 0" + ppm policy_status "4 1" + ppm policy_status "7 0" + ppm policy_status "9 0" + + min_freq 500000 850000 + max_freq 1800000 1950000 + + gpu_dvfs 1 + + cpuset 0-1 0-3 0-7 0-7 0-3 + + echo 1 > /proc/cpuidle/enable + eas 0 0 + cpufreq 0 0 + + exit 0 +elif [[ "$action" = "performance" ]]; then + #performance + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 1" + ppm policy_status "3 0" + ppm policy_status "4 1" + ppm policy_status "7 0" + ppm policy_status "9 1" + + min_freq 1050000 1354000 + max_freq 1800000 2000000 + + gpu_dvfs 0 850000 + + cpuset 0-1 0-3 0-7 0-7 0-3 + + echo 1 > /proc/cpuidle/enable + eas 20 0 + cpufreq 3 1 + + exit 0 +elif [[ "$action" = "fast" ]]; then + #fast + ppm enabled 1 + + ppm policy_status "1 0" + ppm policy_status "2 1" + ppm policy_status "3 0" + ppm policy_status "4 0" + ppm policy_status "7 0" + ppm policy_status "9 1" + + min_freq 1500000 1800000 + max_freq 1800000 2000000 + + gpu_dvfs 0 925000 + + cpuset 0 0-3 0-7 0-7 0-3 + + echo 0 > /proc/cpuidle/enable + eas 50 0 + cpufreq 3 1 + + exit 0 +fi diff --git a/app/src/main/assets/powercfg/mt6768/info.txt b/app/src/main/assets/powercfg/mt6768/info.txt new file mode 100644 index 000000000..7a02d3c55 --- /dev/null +++ b/app/src/main/assets/powercfg/mt6768/info.txt @@ -0,0 +1,3 @@ +mt6768:G70 +mt6768:G80 +mt6768:G85 diff --git a/app/src/main/res/layout/activity_cpu_control.xml b/app/src/main/res/layout/activity_cpu_control.xml index fffee06f1..9f0c625de 100644 --- a/app/src/main/res/layout/activity_cpu_control.xml +++ b/app/src/main/res/layout/activity_cpu_control.xml @@ -88,7 +88,7 @@ android:layout_column="0" android:layout_gravity="fill" android:gravity="center_vertical" - android:text="User's background application" /> + android:text="User's bg app" /> + android:text="System bg app" /> + android:text="Foreground app" /> + android:text="Top app" /> + android:text="Min frequency" /> + android:text="Max frequency" /> + android:text="Governor Mode" /> - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2226de3cc..30aaa2773 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -87,31 +87,31 @@ Overview Donation Scene Mode - Apps - System + App Scene + System Scene Auto-click - Performance - Apps Bias - Power Stat. - CPU + Cpu Mode + App Freeze + Power Stats + CPU control Misc Additional - App Manag. - SWAP - Charg. Ctrl. - Charg. stats - Custom - Process + App Manager + SWAP Menu + Charging ctrl. + Charging stats + Custom cmd + Process mgr Magisk Gesture - App sett - Global Sett + App setting + Global Setting Screen filters - Backup - Copyrights + Backup Restore + QQ Feedback Share App - MIUI temp + MIUI thermal System @@ -219,125 +219,125 @@ Turn off some options in Performance Boost Config to avoid power consumption caused by the CPU being pulled up frequently, but keep the application startup boost, which will slightly reduce the experience. A reboot is required! Continue - Shutting down SWAP, this can be slow - Current status. + SWAP is being closed, which can be slow + Current state: Memory Info VM Stat SWAP IO - Description: \n higher value will be more aggressive use of SWAP, this setting on the smoothness of the impact is difficult to perceive, adjust as appropriate ~ - Description: \n higher value will be more aggressive use of SWAP, this setting on the smoothness of the impact is difficult to perceive, adjust as appropriate ~ - Swappiness - ZRAM - Adjust - Description: ZRAM is an implementation of SWAP. When available memory becomes insufficient, some of the data in memory is compressed. However, the CPU will become busy as a result~ - Compression algorithm - Change has not taken effect - ZRAM is in use, and the compression algorithm cannot be changed now. \n\nTo make the settings take effect, please click the "Adjust" button below - Swapfile - Create - Start - Shutdown - Delete - Use up ZRAM before using - Use at the same time as ZRAM - Use in preference to ZRAM - Mount as loopback device - If you can use SWAP normally without turning this on, there is no need to turn it on. \n\nUnless it is impossible to start SWAP, or the phone crashes after starting SWAP, then you need to turn on this option! \n\nFor example: Xiaomi\'s SDM845 model in Android 9.0, you need to check this to use SWAP normally - Description: Swapfile is similar to Windows virtual memory, the swap efficiency is limited by the disk performance. Please don\'t use this feature on small capacity or insufficient space phones to prevent the flash memory from aging too fast! - Boot Self-boot (to allow Scene to boot) - Note: You need to allow Scene to self boot for the next boot to take effect! - ZRAM status - External add-on (Magisk) module is active - ZRAM compression ratio is usually between 20~45% - Data compression algorithm: %s\nOriginal data size: %s\nCompressed size: %s\nPhysical memory footprint: %s\nMaximum memory footprint: %s\nMemory footprint limit: %s\nCompression rate : %s - Data compression algorithm: %s\nOriginal data size: %s\nCompressed size: %s\nCompression rate : %s - Compression algorithm - Not created - Not started - In use - extra_free_kbytes(KB) - This value specifies how much extra physical memory the Linux kernel will reserve, and will immediately start compressing memory to SWAP/ZRAM when it runs low, and the device will become noticeably slower until the available memory comes back up to a reasonable range \n\n Simply put, the larger the extra_free_kbytes setting, the more aggressive the memory recycling/swapping, but it is not recommended to set it too large so as not to The larger the extra_free_kbytes setting, the more aggressive the memory recycling/swapping. - watermark_scale_factor - - The value ranges from 0 to 1000, where 1000 means 10%, indicating that the difference between the three values of memory watermark low/min/high is 10% of each (physical RAM capacity). \n\nFor example (my phone): \npageSize=4KB\nmanaged=1951743(pages)\nmin_free_kbytes=10900(KB)\nwatermark_scale_factor=500\n\nThe min value at this time is \n10900(KB)/4 (PageSize)=2725(pages)\nnlow value is about \n1951743*5%+2725≈100312(pages)\nhigh value is about \n1951743*10%+2725≈197899(pages)\nNote: The final low and high values may be affected by extra_free_kbytes may be affected by extra_kbytes and be large \n\n this example, \nmin=2725=10MB\nlow=100312≈392MB\nhigh=197899≈773MB\n\n means that memory below 392M will start recycling memory until the available memory is higher than 773MB\n\n if you pursue the ultimate background If you are looking for the ultimate background capability and don\'t really care about performance and power consumption, you can turn the value up (but it is not recommended to exceed 500), while if you are concerned about smoothness it is recommended to set it to 100 or less~ - Executing operation, please wait... - Please wait... - The operation has been completed! - File creation in progress - Adjusting, please be patient... - Priority - Order - Used - Size - Type - Path - Battery is low, please charge in time! - Sorry - Power saving mode - Balance mode - Performance mode - Speed mode - Power Saving - Balanced - Performance - Extreme - Not a single app selected! - Help - Warning - Learn more - No available mode configuration script found - The app does not come with a performance configuration script for your phone. You can choose "Get Scripts Online" to see if there are any available for your phone, or "Learn More" for a custom configuration tutorial! - First time user, select configuration preferences first - Select the online script library - yc9559 Customization v - - yc9559 Custom v - Configure and install successfully! - ro.product.model= - ro.product.brand= - ro.product.name= - ro.product.device= - ro.product.manufacturer= - self-start - Auto-modify after boot - Some phones have a dynamic adjustment mechanism for CPU parameters, which will cause the custom parameters to fail soon, in addition, the temperature control will also restrict you from turning up the CPU frequency. + Description: \n higher value will be more aggressive use of SWAP, this setting has a hard to perceive impact on smoothness, adjust as appropriate~ + Swappiness + ZRAM + Adjustment + Description: ZRAM is an implementation of SWAP. When available memory becomes insufficient, some of the data in memory is compressed. However, the CPU will become busy as a result~ + Compression algorithms + Change did not take effect + ZRAM is in use and the compression algorithm cannot be changed right now. \n\nTo make the settings take effect, click the "Adjust" button below + Swapfile + Create + Start + Shutdown + delete + Use up ZRAM before using it + Use with ZRAM + used before ZRAM + Mount as loopback device + If you can use SWAP normally without this, there is no need to turn it on. \n\nUnless you can\'t start SWAP, or your phone dies after starting SWAP, you need to turn on this option! \n\nFor example: Xiaomi\'s SDM845 model in Android 9.0, you need to check this to use SWAP normally + Description: Swapfile is similar to Windows virtual memory, swap efficiency is limited by disk performance. Please do not use this feature on small or undersized phones to prevent the flash memory from aging too fast! + Power-on self-start (to allow Scene to self-start) + Note: You need to allow Scene to self-start for the next boot to take effect! + ZRAM status + External add-on (Magisk) module is activated + ZRAM compression typically ranges from 20 to 45% + Data compression algorithm: %s\n raw data size: %s\n compressed size: %s\n physical memory footprint: %s\n maximum memory footprint: %s\n memory footprint limit: %s\n compression rate : %s + Data compression algorithm: %s\nOriginal data size: %s\nCompressed size: %s\nCompression rate : %s + Compression algorithm + Not created + Not started + In use + extra_free_kbytes(KB) + This value specifies how much extra physical memory the Linux kernel will reserve, and will immediately start compressing memory to SWAP/ZRAM when it runs low, and the device will become noticeably slower until the available memory comes back up to a reasonable range \n\n simply put extra_free_kbytes The larger the kbytes setting, the more aggressive the memory recycling/swapping, but it is not recommended to set it too large to avoid wasting physical memory and burdening the disk/processor! + watermark_scale_factor + values range from 0 to 1000, where 1000 means 10%, indicating a 10% difference (of physical RAM capacity) between each of the three values of the memory watermark low/min/high. \n\nFor example (my phone): \npageSize=4KB\nmanaged=1951743(pages)\nmin_free_kbytes=10900(KB)\nwatermark_scale_factor=500\n\n\nThe min value at this time is \n10900(KB)/4 (PageSize)=2725(pages)\nnlow value is about \n1951743*5%+2725≈100312(pages)\nhigh value is about \n1951743*10%+2725≈197899(pages)\nNote: The final low and high values may be affected by extra_ free_kbytes may be affected by extra_kbytes and be large \n\n this example, \nmin=2725=10MB\nlow=100312≈392MB\nhigh=197899≈773MB\n\n means that memory below 392M will start recycling memory until the available memory is higher than 773MB\n\n if you pursue the ultimate background capability and don\'t really care about performance and power consumption, you can turn the value up (but it\'s not recommended to exceed 500), while if you\'re concerned about smoothness it\'s recommended to set it to 100 or less~ + + Executing operation, please wait... + Please wait... + The operation has been completed! + Creating file in progress + Resizing, please be patient... + priority + Order + used + size + type + path + The battery is low, please charge it! + Sorry + Power saving + Balance + Performance + Extreme speed + Power saving + Balance + Performance + Extreme speed + None of the apps are selected! + help + Warning + Learn more + No available schema configuration script found + The app does not come with a performance configuration script for your phone. You can choose "Get scripts online" to see if there is one available for your phone, or "Learn more" for a custom configuration tutorial! + First time user, select configuration preferences first + Select online script library + yc9559 customization v1 + yc9559 custom v2 + + Configuration installed successfully! + ro.product.model= + ro.product.brand= + ro.product.name= + ro.product.device= + ro.product.manufacturer= + self-start + Automatically modify after boot + Some phones have a dynamic adjustment mechanism for CPU parameters, which can cause custom parameters to fail quickly, and temperature control can also limit you from cranking up the CPU frequency. + script execution - Script execution Power saving mode - Balanced mode + General mode Performance mode + Extreme speed mode - Extreme mode All - Power Saving - Balanced + Power saving + Balance Performance Extreme Speed - Global Defaults + Global Default + Hold state - Keep state Users System + All - all + cgroup - cgroup - system defaults - General applications - Priority memory - Important processes - Restricted background + System default + General Application + Priority Memory + Important Processes + Constrained background + Reclaimed Memory - Reclaimed Memory + scene_lock scene_perf scene_sys scene_limit - scene_limit + scene_limit2 Timed Tasks