Loading include/cutils/sched_policy.h +5 −0 Original line number Diff line number Diff line Loading @@ -21,21 +21,26 @@ extern "C" { #endif /* Keep in sync with THREAD_GROUP_* in frameworks/base/core/java/android/os/Process.java */ typedef enum { SP_DEFAULT = -1, SP_BACKGROUND = 0, SP_FOREGROUND = 1, SP_CNT, SP_MAX = SP_CNT - 1, SP_SYSTEM_DEFAULT = SP_FOREGROUND, } SchedPolicy; /* Assign thread tid to the cgroup associated with the specified policy. * If the thread is a thread group leader, that is it's gettid() == getpid(), * then the other threads in the same thread group are _not_ affected. * On platforms which support gettid(), zero tid means current thread. * Return value: 0 for success, or -errno for error. */ extern int set_sched_policy(int tid, SchedPolicy policy); /* Return the policy associated with the cgroup of thread tid via policy pointer. * On platforms which support gettid(), zero tid means current thread. * Return value: 0 for success, or -1 for error and set errno. */ extern int get_sched_policy(int tid, SchedPolicy *policy); Loading libcutils/sched_policy.c +21 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,11 @@ static int getSchedulerGroup(int tid, char* buf, size_t bufLen) int get_sched_policy(int tid, SchedPolicy *policy) { #ifdef HAVE_GETTID if (tid == 0) { tid = gettid(); } #endif pthread_once(&the_once, __initialize); if (__sys_supports_schedgroups) { Loading Loading @@ -219,8 +224,23 @@ int get_sched_policy(int tid, SchedPolicy *policy) return 0; } /* Re-map SP_DEFAULT to the system default policy, and leave other values unchanged. * Call this any place a SchedPolicy is used as an input parameter. * Returns the possibly re-mapped policy. */ static inline SchedPolicy _policy(SchedPolicy p) { return p == SP_DEFAULT ? SP_SYSTEM_DEFAULT : p; } int set_sched_policy(int tid, SchedPolicy policy) { #ifdef HAVE_GETTID if (tid == 0) { tid = gettid(); } #endif policy = _policy(policy); pthread_once(&the_once, __initialize); #if POLICY_DEBUG Loading Loading @@ -275,6 +295,7 @@ int set_sched_policy(int tid, SchedPolicy policy) const char *get_sched_policy_name(SchedPolicy policy) { policy = _policy(policy); static const char * const strings[SP_CNT] = { [SP_BACKGROUND] = "bg", [SP_FOREGROUND] = "fg", Loading Loading
include/cutils/sched_policy.h +5 −0 Original line number Diff line number Diff line Loading @@ -21,21 +21,26 @@ extern "C" { #endif /* Keep in sync with THREAD_GROUP_* in frameworks/base/core/java/android/os/Process.java */ typedef enum { SP_DEFAULT = -1, SP_BACKGROUND = 0, SP_FOREGROUND = 1, SP_CNT, SP_MAX = SP_CNT - 1, SP_SYSTEM_DEFAULT = SP_FOREGROUND, } SchedPolicy; /* Assign thread tid to the cgroup associated with the specified policy. * If the thread is a thread group leader, that is it's gettid() == getpid(), * then the other threads in the same thread group are _not_ affected. * On platforms which support gettid(), zero tid means current thread. * Return value: 0 for success, or -errno for error. */ extern int set_sched_policy(int tid, SchedPolicy policy); /* Return the policy associated with the cgroup of thread tid via policy pointer. * On platforms which support gettid(), zero tid means current thread. * Return value: 0 for success, or -1 for error and set errno. */ extern int get_sched_policy(int tid, SchedPolicy *policy); Loading
libcutils/sched_policy.c +21 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,11 @@ static int getSchedulerGroup(int tid, char* buf, size_t bufLen) int get_sched_policy(int tid, SchedPolicy *policy) { #ifdef HAVE_GETTID if (tid == 0) { tid = gettid(); } #endif pthread_once(&the_once, __initialize); if (__sys_supports_schedgroups) { Loading Loading @@ -219,8 +224,23 @@ int get_sched_policy(int tid, SchedPolicy *policy) return 0; } /* Re-map SP_DEFAULT to the system default policy, and leave other values unchanged. * Call this any place a SchedPolicy is used as an input parameter. * Returns the possibly re-mapped policy. */ static inline SchedPolicy _policy(SchedPolicy p) { return p == SP_DEFAULT ? SP_SYSTEM_DEFAULT : p; } int set_sched_policy(int tid, SchedPolicy policy) { #ifdef HAVE_GETTID if (tid == 0) { tid = gettid(); } #endif policy = _policy(policy); pthread_once(&the_once, __initialize); #if POLICY_DEBUG Loading Loading @@ -275,6 +295,7 @@ int set_sched_policy(int tid, SchedPolicy policy) const char *get_sched_policy_name(SchedPolicy policy) { policy = _policy(policy); static const char * const strings[SP_CNT] = { [SP_BACKGROUND] = "bg", [SP_FOREGROUND] = "fg", Loading