From 6eded858fc07d6dc18fa74486fd64d0b4ae8a7be Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Thu, 5 Dec 2024 08:53:47 +0000 Subject: [PATCH] Add sched qos support Add task profiles and set permissions. Bug: 355612114 Flag: NONE init rc file does not support flag Test: build pass Change-Id: I04d2f7af89fe3b1425962a5a5ab01e42f09fc19d --- conf/init.gs201.rc | 77 ++++++++++++++ task_profiles.json | 254 ++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 314 insertions(+), 17 deletions(-) diff --git a/conf/init.gs201.rc b/conf/init.gs201.rc index 92f478b3..fa8edc30 100644 --- a/conf/init.gs201.rc +++ b/conf/init.gs201.rc @@ -104,6 +104,83 @@ on init start vendor.keymaster-4-0 + # Change permission of sched qos nodes + chown system system /proc/vendor_sched/sched_qos/adpf_set + chown system system /proc/vendor_sched/sched_qos/adpf_clear + chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_set + chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_clear + chown system system /proc/vendor_sched/sched_qos/boost_prio_set + chown system system /proc/vendor_sched/sched_qos/boost_prio_clear + chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_set + chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_clear + chown system system /proc/vendor_sched/sched_qos/prefer_fit_set + chown system system /proc/vendor_sched/sched_qos/prefer_fit_clear + chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_set + chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_clear + chown system system /proc/vendor_sched/sched_qos/prefer_idle_set + chown system system /proc/vendor_sched/sched_qos/prefer_idle_clear + chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_set + chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_clear + + chmod 0220 /proc/vendor_sched/sched_qos/adpf_set + chmod 0220 /proc/vendor_sched/sched_qos/adpf_clear + chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_set + chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_clear + chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_set + chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_clear + chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_set + chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_clear + chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_set + chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_clear + chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_set + chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_clear + chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_set + chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_clear + chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_set + chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_clear + + # Enable sched_qos for some groups + write /proc/vendor_sched/groups/ta/qos_adpf_enable 1 + write /proc/vendor_sched/groups/ta/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/ta/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/ta/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/ta/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/ta/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/ta/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/ta/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/fg/qos_adpf_enable 1 + write /proc/vendor_sched/groups/fg/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/fg/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/fg/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/fg/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/fg/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/fg/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/fg/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_adpf_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/fg_wi/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/cam/qos_adpf_enable 1 + write /proc/vendor_sched/groups/cam/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/cam/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/cam/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/cam/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/cam/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_adpf_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/rt/qos_adpf_enable 1 + write /proc/vendor_sched/groups/rt/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/sf/qos_adpf_enable 1 + write /proc/vendor_sched/groups/sf/qos_rampup_multiplier_enable 1 + # ZRAM setup write /sys/block/zram0/comp_algorithm lz77eh write /proc/sys/vm/page-cluster 0 diff --git a/task_profiles.json b/task_profiles.json index 47cada84..6b9b1ee3 100644 --- a/task_profiles.json +++ b/task_profiles.json @@ -15,21 +15,6 @@ } ] }, - { - "Name": "PreferIdle", - "Actions": [ - { - "Name": "WriteFile", - "Params": - { - "FilePath": "/proc/vendor_sched/prefer_idle_set", - "ProcFilePath": "/proc/vendor_sched/prefer_idle_set", - "Value": "", - "LogFailures": "false" - } - } - ] - }, { "Name": "CameraServicePerformance", "Actions": [ @@ -174,6 +159,21 @@ } ] }, + { + "Name": "HighPerformanceWI", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/groups/fg_wi/set_task_group", + "ProcFilePath": "/proc/vendor_sched/groups/fg_wi/set_proc_group", + "Value": "", + "LogFailures": "false" + } + } + ] + }, { "Name": "RealtimePerformance", "Actions": [ @@ -265,6 +265,202 @@ } ] }, + { + "Name": "AdpfSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/adpf_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "AdpfClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/adpf_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "BoostPrioSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/boost_prio_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "BoostPrioClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/boost_prio_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreemptWakeupSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/preempt_wakeup_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreemptWakeupClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/preempt_wakeup_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreferFitSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/prefer_fit_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreferFitClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/prefer_fit_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreferIdleSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/prefer_idle_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreferIdleClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/prefer_idle_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "AutoUclampMaxSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/auto_uclamp_max_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "AutoUclampMaxClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/auto_uclamp_max_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreferHighCapSet", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/prefer_high_cap_set", + "Value": "", + "LogFailures": "false" + } + } + ] + }, + { + "Name": "PreferHighCapClear", + "Actions": [ + { + "Name": "WriteFile", + "Params": + { + "FilePath": "/proc/vendor_sched/sched_qos/prefer_high_cap_clear", + "Value": "", + "LogFailures": "false" + } + } + ] + }, { "Name": "ResetUclampGrp", "Actions": [ @@ -302,11 +498,35 @@ }, { "Name": "OtaProfiles", - "Profiles": [ "OtaPerformance", "ProcessCapacityNormal", "LowIoPriority", "TimerSlackHigh" ] + "Profiles": [ "OtaPerformance", "ServiceCapacityLow", "LowIoPriority", "TimerSlackHigh" ] + }, + { + "Name": "SCHED_QOS_SENSITIVE_EXTREME_SET", + "Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet", "BoostPrioSet", "PreemptWakeupSet" ] + }, + { + "Name": "SCHED_QOS_SENSITIVE_EXTREME_CLEAR", + "Profiles": [ "AdpfClear", "PreferIdleClear", "PreferFitClear", "BoostPrioClear", "PreemptWakeupClear" ] + }, + { + "Name": "SCHED_QOS_SENSITIVE_STANDARD_SET", + "Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet" ] + }, + { + "Name": "SCHED_QOS_SENSITIVE_STANDARD_CLEAR", + "Profiles": [ "AdpfClear", "PreferIdleClear", "PreferFitClear" ] + }, + { + "Name": "SCHED_QOS_POWER_EFFICIENCY_SET", + "Profiles": [ "AutoUclampMaxSet" ] + }, + { + "Name": "SCHED_QOS_POWER_EFFICIENCY_CLEAR", + "Profiles": [ "AutoUclampMaxClear" ] }, { "Name": "InputPolicy", - "Profiles": [ "MaxPerformance", "ResetUclampGrp", "PreferIdle" ] + "Profiles": [ "MaxPerformance", "SCHED_QOS_SENSITIVE_EXTREME_SET" ] } ] }