summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvincechiu <vincechiu@google.com>2021-07-20 12:44:59 +0800
committerJay <jaytwang@google.com>2021-11-10 18:28:28 +0000
commit86c6a376a78c4b93a398f9055d8b2e0ebd299d51 (patch)
treecd02535c43a11e9cc5505605d0cda063f6fc5c01
parenta24669c1fd9aa4cc51a2f88a1f92a120f2aab1cc (diff)
downloadgs201-86c6a376a78c4b93a398f9055d8b2e0ebd299d51.tar.gz
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
-rw-r--r--conf/init.gs201.rc20
-rw-r--r--powerhint.json114
-rw-r--r--task_profiles.json39
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
@@ -136,6 +136,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",
"Values": [
@@ -412,6 +448,12 @@
"Value": "9999999"
},
{
+ "PowerHint": "CAMERA_LAUNCH",
+ "Node": "CDCpuset",
+ "Duration": 1000,
+ "Value": "4-7"
+ },
+ {
"PowerHint": "CAMERA_SHOT",
"Node": "MemFreq",
"Duration": 300,
@@ -616,6 +658,24 @@
"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",
"Duration": 0,
@@ -682,6 +742,24 @@
"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",
"Duration": 0,
@@ -730,6 +808,24 @@
"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",
"Duration": 0,
@@ -784,6 +880,24 @@
"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",
"Duration": 0,
diff --git a/task_profiles.json b/task_profiles.json
index e4f9c07..5ca5431 100644
--- a/task_profiles.json
+++ b/task_profiles.json
@@ -45,6 +45,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": [
{