Limit camera daemon cpuset to little cores when app launch
When exiting camera app, camera daemon is still busy in background,
which may affect the launch animation of launcher. So, limit the cpuset of camera daemon to little cores for 1 second when there is app launch hint to improve it, but cancel it right away when there is camera launch hint. Also bypass this behavior when video recording is active.
Bug: 240889279
Test: camera daemon cpuset changed as expected
Change-Id: Ieeafb0d96fbce1b7a97df0e554bd2223529bf1ed
diff --git a/powerhint-cheetah-a0.json b/powerhint-cheetah-a0.json
index 1207c8d..37322c9 100644
--- a/powerhint-cheetah-a0.json
+++ b/powerhint-cheetah-a0.json
@@ -207,6 +207,7 @@
"Name": "CDCpuset",
"Path": "/dev/cpuset/camera-daemon/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -225,6 +226,7 @@
"Name": "CDHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-high-group/cpus",
"Values": [
+ "0-3",
"6-7",
"0-7"
],
@@ -234,6 +236,7 @@
"Name": "CDMidCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-group/cpus",
"Values": [
+ "0-3",
"4-5",
"0-7"
],
@@ -243,6 +246,7 @@
"Name": "CDMidHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-high-group/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -606,6 +610,30 @@
],
"Actions": [
{
+ "PowerHint": "CDCPUSET_RESTRICTED",
+ "Node": "CDCpuset",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
"PowerHint": "LAUNCH",
"Node": "FGPreferIdle",
"Duration": 5000,
@@ -613,6 +641,26 @@
},
{
"PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
@@ -655,6 +703,26 @@
},
{
"PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
"Node": "MemFreq",
"Duration": 1000,
"Value": "3172000"
@@ -1386,6 +1454,26 @@
"Value": "0"
},
{
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
"PowerHint": "CAMERA_GPU_HIGH",
"Node": "GPUMinFreq",
"Duration": 0,
diff --git a/powerhint-cheetah.json b/powerhint-cheetah.json
index a752ab3..d4ab83c 100644
--- a/powerhint-cheetah.json
+++ b/powerhint-cheetah.json
@@ -233,6 +233,7 @@
"Name": "CDCpuset",
"Path": "/dev/cpuset/camera-daemon/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -242,6 +243,7 @@
"Name": "CDHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-high-group/cpus",
"Values": [
+ "0-3",
"6-7",
"0-7"
],
@@ -251,6 +253,7 @@
"Name": "CDMidCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-group/cpus",
"Values": [
+ "0-3",
"4-5",
"0-7"
],
@@ -260,6 +263,7 @@
"Name": "CDMidHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-high-group/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -625,6 +629,30 @@
],
"Actions": [
{
+ "PowerHint": "CDCPUSET_RESTRICTED",
+ "Node": "CDCpuset",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
"PowerHint": "LAUNCH",
"Node": "UClampThreshold",
"Duration": 5000,
@@ -651,6 +679,26 @@
{
"PowerHint": "LAUNCH",
"Type": "DoHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
"Value": "LAUNCH_GPU"
},
{
@@ -697,6 +745,26 @@
},
{
"PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
"Node": "MemFreq",
"Duration": 1000,
"Value": "3172000"
@@ -1428,6 +1496,26 @@
"Value": "0"
},
{
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
"PowerHint": "CAMERA_GPU_HIGH",
"Node": "GPUMinFreq",
"Duration": 0,
diff --git a/powerhint-panther-a0.json b/powerhint-panther-a0.json
index a5daca8..aa8e60d 100644
--- a/powerhint-panther-a0.json
+++ b/powerhint-panther-a0.json
@@ -196,6 +196,7 @@
"Name": "CDCpuset",
"Path": "/dev/cpuset/camera-daemon/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -214,6 +215,7 @@
"Name": "CDHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-high-group/cpus",
"Values": [
+ "0-3",
"6-7",
"0-7"
],
@@ -223,6 +225,7 @@
"Name": "CDMidCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-group/cpus",
"Values": [
+ "0-3",
"4-5",
"0-7"
],
@@ -232,6 +235,7 @@
"Name": "CDMidHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-high-group/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -595,6 +599,30 @@
],
"Actions": [
{
+ "PowerHint": "CDCPUSET_RESTRICTED",
+ "Node": "CDCpuset",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
"PowerHint": "LAUNCH",
"Node": "FGPreferIdle",
"Duration": 5000,
@@ -602,6 +630,26 @@
},
{
"PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
@@ -644,6 +692,26 @@
},
{
"PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
"Node": "MemFreq",
"Duration": 1000,
"Value": "3172000"
@@ -1273,6 +1341,26 @@
"Value": "0"
},
{
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
"PowerHint": "CAMERA_GPU_HIGH",
"Node": "GPUMinFreq",
"Duration": 0,
diff --git a/powerhint-panther.json b/powerhint-panther.json
index 4298584..e852c76 100644
--- a/powerhint-panther.json
+++ b/powerhint-panther.json
@@ -213,6 +213,7 @@
"Name": "CDCpuset",
"Path": "/dev/cpuset/camera-daemon/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -222,6 +223,7 @@
"Name": "CDHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-high-group/cpus",
"Values": [
+ "0-3",
"6-7",
"0-7"
],
@@ -231,6 +233,7 @@
"Name": "CDMidCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-group/cpus",
"Values": [
+ "0-3",
"4-5",
"0-7"
],
@@ -240,6 +243,7 @@
"Name": "CDMidHighCpusetCpus",
"Path": "/dev/cpuset/camera-daemon-mid-high-group/cpus",
"Values": [
+ "0-3",
"4-7",
"0-7"
],
@@ -605,6 +609,30 @@
],
"Actions": [
{
+ "PowerHint": "CDCPUSET_RESTRICTED",
+ "Node": "CDCpuset",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
+ "PowerHint": "CDMIDHIGHCPUSETCPUS_RESTRICTED",
+ "Node": "CDMidHighCpusetCpus",
+ "Duration": 1000,
+ "Value": "0-3"
+ },
+ {
"PowerHint": "LAUNCH",
"Node": "UClampThreshold",
"Duration": 5000,
@@ -624,6 +652,26 @@
},
{
"PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Type": "DoHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
@@ -666,6 +714,26 @@
},
{
"PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
+ "Type": "EndHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_LAUNCH",
"Node": "MemFreq",
"Duration": 1000,
"Value": "3172000"
@@ -1295,6 +1363,26 @@
"Value": "0"
},
{
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDCPUSET_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDCPUSETCPUS_RESTRICTED"
+ },
+ {
+ "PowerHint": "CAMERA_VIDEO_RECORDING",
+ "Type": "MaskHint",
+ "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED"
+ },
+ {
"PowerHint": "CAMERA_GPU_HIGH",
"Node": "GPUMinFreq",
"Duration": 0,