From 6ddc5e88b1db9e17ce6310c29203c2a31cb749c5 Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Tue, 13 Sep 2022 07:13:32 +0000 Subject: [PATCH] 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. This only happens when camera is running. Also bypass this behavior when video recording is active. Bug: 240889279 Test: camera daemon cpuset changed as expected Change-Id: I130b1e4718f8e5ef47ad761a2a73d86697d0f8bc --- powerhint.json | 106 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/powerhint.json b/powerhint.json index f8d8ae2..fa489b3 100644 --- a/powerhint.json +++ b/powerhint.json @@ -212,6 +212,7 @@ "Name": "CDCpuset", "Path": "/dev/cpuset/camera-daemon/cpus", "Values": [ + "0-3", "4-7", "0-7" ], @@ -221,6 +222,7 @@ "Name": "CDHighCpusetCpus", "Path": "/dev/cpuset/camera-daemon-high-group/cpus", "Values": [ + "0-3", "6-7", "0-7" ], @@ -230,6 +232,7 @@ "Name": "CDMidCpusetCpus", "Path": "/dev/cpuset/camera-daemon-mid-group/cpus", "Values": [ + "0-3", "4-5", "0-7" ], @@ -239,6 +242,7 @@ "Name": "CDMidHighCpusetCpus", "Path": "/dev/cpuset/camera-daemon-mid-high-group/cpus", "Values": [ + "0-3", "4-7", "0-7" ], @@ -317,6 +321,16 @@ ], "Type": "Property" }, + { + "Name": "PowerHALCameraRunning", + "Path": "vendor.powerhal.camerarunning", + "Values": [ + "1", + "0" + ], + "Type": "Property", + "ResetOnInit": true + }, { "Name": "INTCAMFreq", "Path": "/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam/min_freq", @@ -511,6 +525,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", @@ -571,6 +609,30 @@ "Duration": 5000, "Value": "0" }, + { + "PowerHint": "LAUNCH", + "Type": "DoHint", + "EnableProperty": "vendor.powerhal.camerarunning", + "Value": "CDCPUSET_RESTRICTED" + }, + { + "PowerHint": "LAUNCH", + "Type": "DoHint", + "EnableProperty": "vendor.powerhal.camerarunning", + "Value": "CDHIGHCPUSETCPUS_RESTRICTED" + }, + { + "PowerHint": "LAUNCH", + "Type": "DoHint", + "EnableProperty": "vendor.powerhal.camerarunning", + "Value": "CDMIDCPUSETCPUS_RESTRICTED" + }, + { + "PowerHint": "LAUNCH", + "Type": "DoHint", + "EnableProperty": "vendor.powerhal.camerarunning", + "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED" + }, { "PowerHint": "CAMERA_LAUNCH", "Node": "MemFreq", @@ -841,6 +903,12 @@ "Duration": 3000, "Value": "848000" }, + { + "PowerHint": "CAMERA_STREAMING_EXTREME", + "Node": "PowerHALCameraRunning", + "Duration": 0, + "Value": "1" + }, { "PowerHint": "CAMERA_STREAMING_EXTREME", "Node": "CPULittleClusterMaxFreq", @@ -913,6 +981,12 @@ "Duration": 0, "Value": "0" }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "PowerHALCameraRunning", + "Duration": 0, + "Value": "1" + }, { "PowerHint": "CAMERA_STREAMING_HIGH", "Node": "CPUUtilThreshold", @@ -991,6 +1065,12 @@ "Duration": 0, "Value": "0" }, + { + "PowerHint": "CAMERA_STREAMING_STANDARD", + "Node": "PowerHALCameraRunning", + "Duration": 0, + "Value": "1" + }, { "PowerHint": "CAMERA_STREAMING_STANDARD", "Node": "CDPreferHighCap", @@ -1063,6 +1143,12 @@ "Duration": 0, "Value": "0" }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "PowerHALCameraRunning", + "Duration": 0, + "Value": "1" + }, { "PowerHint": "CAMERA_STREAMING_LOW", "Node": "CDPreferHighCap", @@ -1135,6 +1221,26 @@ "Duration": 0, "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",