summaryrefslogtreecommitdiffstats
path: root/libcutils
diff options
context:
space:
mode:
authorRiley Andrews <riandrews@google.com>2014-10-03 17:02:53 -0700
committerRiley Andrews <riandrews@google.com>2014-10-07 19:24:54 +0000
commit522d72b7020a7d2f975531c7214ff34225391aba (patch)
treed4cc3a4feae783a79ee8f0a6aa590fffce8c41e3 /libcutils
parentaf162c8b80269781e3602fd0b0e79611ce041f93 (diff)
downloadsystem_core-522d72b7020a7d2f975531c7214ff34225391aba.zip
system_core-522d72b7020a7d2f975531c7214ff34225391aba.tar.gz
system_core-522d72b7020a7d2f975531c7214ff34225391aba.tar.bz2
Make the default cgroup, the foreground cgroup.
All kernel services will now be in the same cgroup as foreground applications. This will now make kernel threads not implicitly higher priority than android foreground services. Bug 17681097 Change-Id: I28e81c7aade50428d5395df86f00ce01c1e7af02
Diffstat (limited to 'libcutils')
-rw-r--r--libcutils/sched_policy.c26
1 files changed, 3 insertions, 23 deletions
diff --git a/libcutils/sched_policy.c b/libcutils/sched_policy.c
index 2acc3c3..493511e 100644
--- a/libcutils/sched_policy.c
+++ b/libcutils/sched_policy.c
@@ -45,8 +45,6 @@ static inline SchedPolicy _policy(SchedPolicy p)
#define POLICY_DEBUG 0
-#define CAN_SET_SP_SYSTEM 0 // non-zero means to implement set_sched_policy(tid, SP_SYSTEM)
-
// This prctl is only available in Android kernels.
#define PR_SET_TIMERSLACK_PID 41
@@ -60,9 +58,6 @@ static int __sys_supports_schedgroups = -1;
// File descriptors open to /dev/cpuctl/../tasks, setup by initialize, or -1 on error.
static int bg_cgroup_fd = -1;
static int fg_cgroup_fd = -1;
-#if CAN_SET_SP_SYSTEM
-static int system_cgroup_fd = -1;
-#endif
/* Add tid to the scheduling group defined by the policy */
static int add_tid_to_cgroup(int tid, SchedPolicy policy)
@@ -78,11 +73,6 @@ static int add_tid_to_cgroup(int tid, SchedPolicy policy)
case SP_AUDIO_SYS:
fd = fg_cgroup_fd;
break;
-#if CAN_SET_SP_SYSTEM
- case SP_SYSTEM:
- fd = system_cgroup_fd;
- break;
-#endif
default:
fd = -1;
break;
@@ -123,21 +113,13 @@ static void __initialize(void) {
if (!access("/dev/cpuctl/tasks", F_OK)) {
__sys_supports_schedgroups = 1;
-#if CAN_SET_SP_SYSTEM
filename = "/dev/cpuctl/tasks";
- system_cgroup_fd = open(filename, O_WRONLY | O_CLOEXEC);
- if (system_cgroup_fd < 0) {
- SLOGV("open of %s failed: %s\n", filename, strerror(errno));
- }
-#endif
-
- filename = "/dev/cpuctl/apps/tasks";
fg_cgroup_fd = open(filename, O_WRONLY | O_CLOEXEC);
if (fg_cgroup_fd < 0) {
SLOGE("open of %s failed: %s\n", filename, strerror(errno));
}
- filename = "/dev/cpuctl/apps/bg_non_interactive/tasks";
+ filename = "/dev/cpuctl/bg_non_interactive/tasks";
bg_cgroup_fd = open(filename, O_WRONLY | O_CLOEXEC);
if (bg_cgroup_fd < 0) {
SLOGE("open of %s failed: %s\n", filename, strerror(errno));
@@ -233,11 +215,9 @@ int get_sched_policy(int tid, SchedPolicy *policy)
if (getSchedulerGroup(tid, grpBuf, sizeof(grpBuf)) < 0)
return -1;
if (grpBuf[0] == '\0') {
- *policy = SP_SYSTEM;
- } else if (!strcmp(grpBuf, "apps/bg_non_interactive")) {
- *policy = SP_BACKGROUND;
- } else if (!strcmp(grpBuf, "apps")) {
*policy = SP_FOREGROUND;
+ } else if (!strcmp(grpBuf, "bg_non_interactive")) {
+ *policy = SP_BACKGROUND;
} else {
errno = ERANGE;
return -1;