Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64811b7b authored by Quentin Perret's avatar Quentin Perret
Browse files

libprocessgroup: ensure schedboost_enabled is true with uclamp



In the current state, schedboost_enabled() is true if and only if
schedtune is in use. As a result, all tests conditioned by
schedboost_enabled() will be skipped on devices using uclamp since it is
and extension of the CPU controller.

Fix this by making schedboost_enabled() return true if either schedtune
or the CPU controller is enabled.

Bug: 44953631
Change-Id: Idaadf252c9cf411a176180ab8988d559ca8a1332
Signed-off-by: default avatarQuentin Perret <qperret@google.com>
parent d66e442c
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -138,8 +138,17 @@ 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 = (CgroupMap::GetInstance().FindController("schedtune").IsUsable());
    static bool enabled = schedtune_enabled() || cpuctl_enabled();

    return enabled;
}

@@ -162,7 +171,9 @@ int get_sched_policy(int tid, SchedPolicy* policy) {

    std::string group;
    if (schedboost_enabled()) {
        if (getCGroupSubsys(tid, "schedtune", group) < 0) return -1;
        if ((getCGroupSubsys(tid, "schedtune", group) < 0) &&
            (getCGroupSubsys(tid, "cpu", group) < 0))
		return -1;
    }
    if (group.empty() && cpusets_enabled()) {
        if (getCGroupSubsys(tid, "cpuset", group) < 0) return -1;