libprocessgroup: Remove schedtune support
Schedtune was an out of tree cgroup controller present in Android kernels up to 4.19. It was replaced with uclamp and the cpu controller. Now that 4.19 is EOL and unsupported, and schedtune is not present in any supported Android kernels, remove the userspace support for schedtune. Bug: 362504801 Change-Id: If8baaf1a616984c5dbaac1bbd03e23ad001bc29c
This commit is contained in:
parent
aa56f29ff9
commit
981664df08
10 changed files with 2 additions and 588 deletions
|
|
@ -67,13 +67,6 @@ static void AssertPolicy(SchedPolicy expected_policy) {
|
|||
}
|
||||
|
||||
TEST(SchedPolicy, set_sched_policy) {
|
||||
if (!schedboost_enabled()) {
|
||||
// schedboost_enabled() (i.e. CONFIG_CGROUP_SCHEDTUNE) is optional;
|
||||
// it's only needed on devices using energy-aware scheduler.
|
||||
GTEST_LOG_(INFO) << "skipping test that requires CONFIG_CGROUP_SCHEDTUNE";
|
||||
return;
|
||||
}
|
||||
|
||||
ASSERT_EQ(0, set_sched_policy(0, SP_BACKGROUND));
|
||||
ASSERT_EQ(0, set_cpuset_policy(0, SP_BACKGROUND));
|
||||
AssertPolicy(SP_BACKGROUND);
|
||||
|
|
|
|||
|
|
@ -29,14 +29,6 @@ extern "C" {
|
|||
*/
|
||||
extern bool cpusets_enabled();
|
||||
|
||||
/*
|
||||
* Check if Linux kernel enables SCHEDTUNE feature (only available in Android
|
||||
* common kernel or Linaro LSK, not in mainline Linux as of v4.9)
|
||||
*
|
||||
* Return value: 1 if Linux kernel CONFIG_CGROUP_SCHEDTUNE=y; 0 otherwise.
|
||||
*/
|
||||
extern bool schedboost_enabled();
|
||||
|
||||
/* Keep in sync with THREAD_GROUP_* in frameworks/base/core/java/android/os/Process.java */
|
||||
typedef enum {
|
||||
SP_DEFAULT = -1,
|
||||
|
|
|
|||
|
|
@ -19,11 +19,6 @@ package {
|
|||
prebuilt_etc {
|
||||
name: "cgroups.json",
|
||||
src: "cgroups.json",
|
||||
required: [
|
||||
"cgroups_28.json",
|
||||
"cgroups_29.json",
|
||||
"cgroups_30.json",
|
||||
],
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
|
|
@ -33,50 +28,9 @@ prebuilt_etc {
|
|||
src: "cgroups.recovery.json",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "cgroups_28.json",
|
||||
src: "cgroups_28.json",
|
||||
sub_dir: "task_profiles",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "cgroups_29.json",
|
||||
src: "cgroups_29.json",
|
||||
sub_dir: "task_profiles",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "cgroups_30.json",
|
||||
src: "cgroups_30.json",
|
||||
sub_dir: "task_profiles",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "task_profiles.json",
|
||||
src: "task_profiles.json",
|
||||
required: [
|
||||
"task_profiles_28.json",
|
||||
"task_profiles_29.json",
|
||||
"task_profiles_30.json",
|
||||
],
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "task_profiles_28.json",
|
||||
src: "task_profiles_28.json",
|
||||
sub_dir: "task_profiles",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "task_profiles_29.json",
|
||||
src: "task_profiles_29.json",
|
||||
sub_dir: "task_profiles",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "task_profiles_30.json",
|
||||
src: "task_profiles_30.json",
|
||||
sub_dir: "task_profiles",
|
||||
}
|
||||
|
||||
cc_defaults {
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"Cgroups": [
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "/dev/stune",
|
||||
"Mode": "0755",
|
||||
"UID": "system",
|
||||
"GID": "system"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"Cgroups": [
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "/dev/stune",
|
||||
"Mode": "0755",
|
||||
"UID": "system",
|
||||
"GID": "system"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"Cgroups": [
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "/dev/stune",
|
||||
"Mode": "0755",
|
||||
"UID": "system",
|
||||
"GID": "system",
|
||||
"Optional": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
{
|
||||
"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": "ServicePerformance",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "background"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": "Dex2oatPerformance",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "background"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "CpuPolicySpread",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "SetAttribute",
|
||||
"Params":
|
||||
{
|
||||
"Name": "STunePreferIdle",
|
||||
"Value": "1"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "CpuPolicyPack",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "SetAttribute",
|
||||
"Params":
|
||||
{
|
||||
"Name": "STunePreferIdle",
|
||||
"Value": "0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
{
|
||||
"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": "ServicePerformance",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "background"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": "Dex2oatPerformance",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "background"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "CpuPolicySpread",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "SetAttribute",
|
||||
"Params":
|
||||
{
|
||||
"Name": "STunePreferIdle",
|
||||
"Value": "1"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "CpuPolicyPack",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "SetAttribute",
|
||||
"Params":
|
||||
{
|
||||
"Name": "STunePreferIdle",
|
||||
"Value": "0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
{
|
||||
"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": "ServicePerformance",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "background"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": "Dex2oatPerformance",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "schedtune",
|
||||
"Path": "background"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "CpuPolicySpread",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "SetAttribute",
|
||||
"Params":
|
||||
{
|
||||
"Name": "STunePreferIdle",
|
||||
"Value": "1"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "CpuPolicyPack",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "SetAttribute",
|
||||
"Params":
|
||||
{
|
||||
"Name": "STunePreferIdle",
|
||||
"Value": "0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -148,20 +148,10 @@ bool cpusets_enabled() {
|
|||
return enabled;
|
||||
}
|
||||
|
||||
static bool schedtune_enabled() {
|
||||
return (CgroupMap::GetInstance().FindController("schedtune").IsUsable());
|
||||
}
|
||||
|
||||
static bool cpuctl_enabled() {
|
||||
return (CgroupMap::GetInstance().FindController("cpu").IsUsable());
|
||||
}
|
||||
|
||||
bool schedboost_enabled() {
|
||||
static bool enabled = schedtune_enabled() || cpuctl_enabled();
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
static int getCGroupSubsys(pid_t tid, const char* subsys, std::string& subgroup) {
|
||||
auto controller = CgroupMap::GetInstance().FindController(subsys);
|
||||
|
||||
|
|
@ -201,9 +191,8 @@ int get_sched_policy(pid_t tid, SchedPolicy* policy) {
|
|||
}
|
||||
|
||||
std::string group;
|
||||
if (schedboost_enabled()) {
|
||||
if ((getCGroupSubsys(tid, "schedtune", group) < 0) &&
|
||||
(getCGroupSubsys(tid, "cpu", group) < 0)) {
|
||||
if (cpuctl_enabled()) {
|
||||
if (getCGroupSubsys(tid, "cpu", group) < 0) {
|
||||
LOG(ERROR) << "Failed to find cpu cgroup for tid " << tid;
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue