From d979f6a6719bb6179ec4b92632ae7d5d37535bb3 Mon Sep 17 00:00:00 2001 From: Chenyang Zhong Date: Fri, 8 Oct 2021 09:48:37 -0400 Subject: [PATCH] sdm660-common: Ship copy of API 28 cgroups/task_profiles.json in vendor Google's prebuilt cgroups.json and task_profiles.json for products launched with previous API levels only covers ro.product.first_api_level >= 28. [1] Xiaomi sdm660 devices were launched with Nougat/Nougat MR1/Oreo (API levels 24-26), so schedtune and task groups are completely broken. Since the system also checks /vendor/etc for vendor profiles, make a copy of cgroups_28.json and task_profiles_28.json and ship them to /vendor/etc. Profiles for previous API levels are all the same anyway. Test: boot and check /dev/stune/ [1] system/core/libprocessgroup/profiles/ Signed-off-by: Chenyang Zhong Signed-off-by: Jarl-Penguin Signed-off-by: SakilMondal Change-Id: I8e54ae2d79034f54447616d79294573bf74ed6e1 Signed-off-by: pix106 --- configs/cgroups.json | 11 +++ configs/task_profiles.json | 135 +++++++++++++++++++++++++++++++++++++ sdm660.mk | 5 ++ 3 files changed, 151 insertions(+) create mode 100644 configs/cgroups.json create mode 100644 configs/task_profiles.json diff --git a/configs/cgroups.json b/configs/cgroups.json new file mode 100644 index 00000000..17d49294 --- /dev/null +++ b/configs/cgroups.json @@ -0,0 +1,11 @@ +{ + "Cgroups": [ + { + "Controller": "schedtune", + "Path": "/dev/stune", + "Mode": "0755", + "UID": "system", + "GID": "system" + } + ] +} diff --git a/configs/task_profiles.json b/configs/task_profiles.json new file mode 100644 index 00000000..9f837859 --- /dev/null +++ b/configs/task_profiles.json @@ -0,0 +1,135 @@ +{ + "Attributes": [ + { + "Name": "STuneBoost", + "Controller": "schedtune", + "File": "schedtune.boost" + }, + { + "Name": "STunePreferIdle", + "Controller": "schedtune", + "File": "schedtune.prefer_idle" + } + ], + + "Profiles": [ + { + "Name": "HighEnergySaving", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "background" + } + } + ] + }, + { + "Name": "NormalPerformance", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "" + } + } + ] + }, + { + "Name": "HighPerformance", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "foreground" + } + } + ] + }, + { + "Name": "MaxPerformance", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "top-app" + } + } + ] + }, + { + "Name": "RealtimePerformance", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "rt" + } + } + ] + }, + { + "Name": "CameraServicePerformance", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "camera-daemon" + } + } + ] + }, + { + "Name": "NNApiHALPerformance", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "schedtune", + "Path": "nnapi-hal" + } + } + ] + }, + + { + "Name": "CpuPolicySpread", + "Actions": [ + { + "Name": "SetAttribute", + "Params": + { + "Name": "STunePreferIdle", + "Value": "1" + } + } + ] + }, + { + "Name": "CpuPolicyPack", + "Actions": [ + { + "Name": "SetAttribute", + "Params": + { + "Name": "STunePreferIdle", + "Value": "0" + } + } + ] + } + ] +} diff --git a/sdm660.mk b/sdm660.mk index feb0e800..9d72c647 100644 --- a/sdm660.mk +++ b/sdm660.mk @@ -156,6 +156,11 @@ PRODUCT_PACKAGES += \ com.android.media.swcodec \ libsfplugin_ccodec +# Cgroup and task_profiles +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/cgroups.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \ + $(LOCAL_PATH)/configs/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json + # Component overrides PRODUCT_COPY_FILES += \ $(COMMON_PATH)/configs/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml