From 6ddc5e88b1db9e17ce6310c29203c2a31cb749c5 Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Tue, 13 Sep 2022 07:13:32 +0000 Subject: [PATCH 1/2] 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", From a1e87a3f5ce66298701998f727d8b282ae0f09fb Mon Sep 17 00:00:00 2001 From: Kyle Lin Date: Wed, 2 Nov 2022 08:47:43 +0800 Subject: [PATCH 2/2] powerhint: relax the cap when camera exit Camera hints was canceled at activityStop and applied the rule for a while after LAUNCH hint, exten the LAUNCH HINT to fix it. Bug: 255927500 Test: build and launch/exit camera Change-Id: I86b19467f6038a7fde0935bf79f0a0e6bc76523b --- powerhint.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/powerhint.json b/powerhint.json index fa489b3..0d7865b 100644 --- a/powerhint.json +++ b/powerhint.json @@ -633,6 +633,29 @@ "EnableProperty": "vendor.powerhal.camerarunning", "Value": "CDMIDHIGHCPUSETCPUS_RESTRICTED" }, + { + "PowerHint": "LAUNCH", + "Type": "DoHint", + "Value": "LAUNCH_EXTEND" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUBigClusterMaxFreq", + "Duration": 2000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUMidClusterMaxFreq", + "Duration": 2000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPULittleClusterMaxFreq", + "Duration": 2000, + "Value": "9999999" + }, { "PowerHint": "CAMERA_LAUNCH", "Node": "MemFreq",