From 86c6a376a78c4b93a398f9055d8b2e0ebd299d51 Mon Sep 17 00:00:00 2001 From: vincechiu Date: Tue, 20 Jul 2021 12:44:59 +0800 Subject: Camera: create three new groups for camera threads high-group is running on CPU 6-7. mid-group is running on CPU 4-5. mid-high-gropu is running on CPU 4-7. Move camera tasks to CPU 4-7 for 1 seconds when AP launch. (cherry-pick from device/google/gs101) Bug: 205010238 Bug: 194271751 Test: GCA Change-Id: I8e13e9ad0057b8f42f8ed3958bf0c6d58a5a02bc --- conf/init.gs201.rc | 20 +++++++++- powerhint.json | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ task_profiles.json | 39 ++++++++++++++++++ 3 files changed, 171 insertions(+), 2 deletions(-) diff --git a/conf/init.gs201.rc b/conf/init.gs201.rc index 670346d..4054494 100644 --- a/conf/init.gs201.rc +++ b/conf/init.gs201.rc @@ -130,8 +130,24 @@ on init chown root root /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive chown system system /dev/cpuctl/camera-daemon/cgroup.procs - write /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive 1 - write /dev/cpuctl/camera-daemon/cpu.uclamp.min 1 + 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 10 diff --git a/powerhint.json b/powerhint.json index a00d7fe..eec7aa0 100644 --- a/powerhint.json +++ b/powerhint.json @@ -135,6 +135,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", @@ -411,6 +447,12 @@ "Duration": 1000, "Value": "9999999" }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CDCpuset", + "Duration": 1000, + "Value": "4-7" + }, { "PowerHint": "CAMERA_SHOT", "Node": "MemFreq", @@ -615,6 +657,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", @@ -681,6 +741,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", @@ -729,6 +807,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", @@ -783,6 +879,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 e4f9c07..5ca5431 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": [ -- cgit v1.2.3