diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index 60a76006..62dbc6c1 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -149,6 +149,24 @@ on init chown root root /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive chown system system /dev/cpuctl/camera-daemon/cgroup.procs + mkdir /dev/cpuset/camera-daemon-high-group + write /dev/cpuset/camera-daemon-high-group/cpus 0-7 + write /dev/cpuset/camera-daemon-high-group/mems 0 + chown system system /dev/cpuset/camera-daemon-high-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-high-group/tasks + + mkdir /dev/cpuset/camera-daemon-mid-group + write /dev/cpuset/camera-daemon-mid-group/cpus 0-7 + write /dev/cpuset/camera-daemon-mid-group/mems 0 + chown system system /dev/cpuset/camera-daemon-mid-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-mid-group/tasks + + mkdir /dev/cpuset/camera-daemon-mid-high-group + write /dev/cpuset/camera-daemon-mid-high-group/cpus 0-7 + write /dev/cpuset/camera-daemon-mid-high-group/mems 0 + chown system system /dev/cpuset/camera-daemon-mid-high-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks + write /sys/kernel/vendor_sched/cam_prefer_idle 1 write /sys/kernel/vendor_sched/cam_uclamp_min 1 diff --git a/powerhint.json b/powerhint.json index 454bef41..1e5714c2 100644 --- a/powerhint.json +++ b/powerhint.json @@ -154,6 +154,42 @@ ], "ResetOnInit": true }, + { + "Name": "CDCpuset", + "Path": "/dev/cpuset/camera-daemon/cpus", + "Values": [ + "4-7", + "0-7" + ], + "ResetOnInit": true + }, + { + "Name": "CDHighCpusetCpus", + "Path": "/dev/cpuset/camera-daemon-high-group/cpus", + "Values": [ + "6-7", + "0-7" + ], + "ResetOnInit": true + }, + { + "Name": "CDMidCpusetCpus", + "Path": "/dev/cpuset/camera-daemon-mid-group/cpus", + "Values": [ + "4-5", + "0-7" + ], + "ResetOnInit": true + }, + { + "Name": "CDMidHighCpusetCpus", + "Path": "/dev/cpuset/camera-daemon-mid-high-group/cpus", + "Values": [ + "4-7", + "0-7" + ], + "ResetOnInit": true + }, { "Name": "F2fsRecessModeEnable", "Path": "/dev/sys/fs/by-name/userdata/gc_urgent", @@ -420,6 +456,12 @@ "Duration": 1000, "Value": "9999999" }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CDCpuset", + "Duration": 1000, + "Value": "4-7" + }, { "PowerHint": "CAMERA_SHOT", "Node": "MemFreq", @@ -624,6 +666,24 @@ "Duration": 0, "Value": "0" }, + { + "PowerHint": "CAMERA_STREAMING_EXTREME", + "Node": "CDHighCpusetCpus", + "Duration": 0, + "Value": "6-7" + }, + { + "PowerHint": "CAMERA_STREAMING_EXTREME", + "Node": "CDMidCpusetCpus", + "Duration": 0, + "Value": "4-5" + }, + { + "PowerHint": "CAMERA_STREAMING_EXTREME", + "Node": "CDMidHighCpusetCpus", + "Duration": 0, + "Value": "4-7" + }, { "PowerHint": "CAMERA_STREAMING_HIGH", "Node": "CPUUtilThreshold", @@ -690,6 +750,24 @@ "Duration": 0, "Value": "0" }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CDHighCpusetCpus", + "Duration": 0, + "Value": "6-7" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CDMidCpusetCpus", + "Duration": 0, + "Value": "4-5" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CDMidHighCpusetCpus", + "Duration": 0, + "Value": "4-7" + }, { "PowerHint": "CAMERA_STREAMING_STANDARD", "Node": "CDPreferHighCap", @@ -738,6 +816,24 @@ "Duration": 0, "Value": "20 10 80" }, + { + "PowerHint": "CAMERA_STREAMING_STANDARD", + "Node": "CDHighCpusetCpus", + "Duration": 0, + "Value": "6-7" + }, + { + "PowerHint": "CAMERA_STREAMING_STANDARD", + "Node": "CDMidCpusetCpus", + "Duration": 0, + "Value": "4-5" + }, + { + "PowerHint": "CAMERA_STREAMING_STANDARD", + "Node": "CDMidHighCpusetCpus", + "Duration": 0, + "Value": "4-7" + }, { "PowerHint": "CAMERA_STREAMING_LOW", "Node": "CDPreferHighCap", @@ -792,6 +888,24 @@ "Duration": 0, "Value": "20 10 80" }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CDHighCpusetCpus", + "Duration": 0, + "Value": "6-7" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CDMidCpusetCpus", + "Duration": 0, + "Value": "4-5" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CDMidHighCpusetCpus", + "Duration": 0, + "Value": "4-7" + }, { "PowerHint": "FIXED_PERFORMANCE", "Node": "CPUBigClusterMaxFreq", diff --git a/task_profiles.json b/task_profiles.json index 887ae9bb..0874d76a 100644 --- a/task_profiles.json +++ b/task_profiles.json @@ -44,6 +44,45 @@ } ] }, + { + "Name": "CameraServiceHighCapacity", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "cpuset", + "Path": "camera-daemon-high-group" + } + } + ] + }, + { + "Name": "CameraServiceMidCapacity", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "cpuset", + "Path": "camera-daemon-mid-group" + } + } + ] + }, + { + "Name": "CameraServiceMidHighCapacity", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "cpuset", + "Path": "camera-daemon-mid-high-group" + } + } + ] + }, { "Name": "HighEnergySaving", "Actions": [