Loading include/utils/AndroidThreads.h +0 −13 Original line number Diff line number Diff line Loading @@ -74,12 +74,6 @@ extern void androidSetCreateThreadFunc(android_create_thread_fn func); extern pid_t androidGetTid(); #ifdef HAVE_ANDROID_OS // Change the scheduling group of a particular thread. The group // should be one of the ANDROID_TGROUP constants. Returns BAD_VALUE if // grp is out of range, else another non-zero value with errno set if // the operation failed. Thread ID zero means current thread. extern int androidSetThreadSchedulingGroup(pid_t tid, int grp); // Change the priority AND scheduling group of a particular thread. The priority // should be one of the ANDROID_PRIORITY constants. Returns INVALID_OPERATION // if the priority set failed, else another value if just the group set failed; Loading @@ -89,13 +83,6 @@ extern int androidSetThreadPriority(pid_t tid, int prio); // Get the current priority of a particular thread. Returns one of the // ANDROID_PRIORITY constants or a negative result in case of error. extern int androidGetThreadPriority(pid_t tid); // Get the current scheduling group of a particular thread. Normally returns // one of the ANDROID_TGROUP constants other than ANDROID_TGROUP_DEFAULT. // Returns ANDROID_TGROUP_DEFAULT if no pthread support (e.g. on host) or if // scheduling groups are disabled. Returns INVALID_OPERATION if unexpected error. // Thread ID zero means current thread. extern int androidGetThreadSchedulingGroup(pid_t tid); #endif #ifdef __cplusplus Loading include/utils/ThreadDefs.h +0 −7 Original line number Diff line number Diff line Loading @@ -79,13 +79,6 @@ enum { ANDROID_PRIORITY_LESS_FAVORABLE = +1, }; enum { ANDROID_TGROUP_DEFAULT = 0, ANDROID_TGROUP_BG_NONINTERACT = 1, ANDROID_TGROUP_FG_BOOST = 2, ANDROID_TGROUP_MAX = ANDROID_TGROUP_FG_BOOST, }; #ifdef __cplusplus } // extern "C" #endif Loading libs/binder/IPCThreadState.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <binder/Binder.h> #include <binder/BpBinder.h> #include <cutils/sched_policy.h> #include <utils/Debug.h> #include <utils/Log.h> #include <utils/TextOutput.h> Loading Loading @@ -428,9 +429,9 @@ void IPCThreadState::joinThreadPool(bool isMain) mOut.writeInt32(isMain ? BC_ENTER_LOOPER : BC_REGISTER_LOOPER); // This thread may have been spawned by a thread that was in the background // scheduling group, so first we will make sure it is in the default/foreground // scheduling group, so first we will make sure it is in the foreground // one to avoid performing an initial transaction in the background. androidSetThreadSchedulingGroup(mMyThreadId, ANDROID_TGROUP_DEFAULT); set_sched_policy(mMyThreadId, SP_FOREGROUND); status_t result; do { Loading Loading @@ -473,13 +474,13 @@ void IPCThreadState::joinThreadPool(bool isMain) } // After executing the command, ensure that the thread is returned to the // default cgroup before rejoining the pool. The driver takes care of // foreground cgroup before rejoining the pool. The driver takes care of // restoring the priority, but doesn't do anything with cgroups so we // need to take care of that here in userspace. Note that we do make // sure to go in the foreground after executing a transaction, but // there are other callbacks into user code that could have changed // our group so we want to make absolutely sure it is put back. androidSetThreadSchedulingGroup(mMyThreadId, ANDROID_TGROUP_DEFAULT); set_sched_policy(mMyThreadId, SP_FOREGROUND); // Let this thread exit the thread pool if it is no longer // needed and it is not the main process thread. Loading Loading @@ -1010,8 +1011,7 @@ status_t IPCThreadState::executeCommand(int32_t cmd) // since the driver won't modify scheduling classes for us. // The scheduling group is reset to default by the caller // once this method returns after the transaction is complete. androidSetThreadSchedulingGroup(mMyThreadId, ANDROID_TGROUP_BG_NONINTERACT); set_sched_policy(mMyThreadId, SP_BACKGROUND); } } Loading libs/utils/Threads.cpp +0 −57 Original line number Diff line number Diff line Loading @@ -324,29 +324,6 @@ pid_t androidGetTid() } #ifdef HAVE_ANDROID_OS int androidSetThreadSchedulingGroup(pid_t tid, int grp) { if (grp > ANDROID_TGROUP_MAX || grp < 0) { return BAD_VALUE; } #if defined(HAVE_PTHREADS) pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup); if (gDoSchedulingGroup) { // set_sched_policy does not support tid == 0 if (tid == 0) { tid = androidGetTid(); } if (set_sched_policy(tid, (grp == ANDROID_TGROUP_BG_NONINTERACT) ? SP_BACKGROUND : SP_FOREGROUND)) { return PERMISSION_DENIED; } } #endif return NO_ERROR; } int androidSetThreadPriority(pid_t tid, int pri) { int rc = 0; Loading Loading @@ -392,40 +369,6 @@ int androidGetThreadPriority(pid_t tid) { #endif } int androidGetThreadSchedulingGroup(pid_t tid) { int ret = ANDROID_TGROUP_DEFAULT; #if defined(HAVE_PTHREADS) // convention is to not call get/set_sched_policy methods if disabled by property pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup); if (gDoSchedulingGroup) { SchedPolicy policy; // get_sched_policy does not support tid == 0 if (tid == 0) { tid = androidGetTid(); } if (get_sched_policy(tid, &policy) < 0) { ret = INVALID_OPERATION; } else { switch (policy) { case SP_BACKGROUND: ret = ANDROID_TGROUP_BG_NONINTERACT; break; case SP_FOREGROUND: ret = ANDROID_TGROUP_FG_BOOST; break; default: // should not happen, as enum SchedPolicy does not have any other values ret = INVALID_OPERATION; break; } } } #endif return ret; } #endif namespace android { Loading Loading
include/utils/AndroidThreads.h +0 −13 Original line number Diff line number Diff line Loading @@ -74,12 +74,6 @@ extern void androidSetCreateThreadFunc(android_create_thread_fn func); extern pid_t androidGetTid(); #ifdef HAVE_ANDROID_OS // Change the scheduling group of a particular thread. The group // should be one of the ANDROID_TGROUP constants. Returns BAD_VALUE if // grp is out of range, else another non-zero value with errno set if // the operation failed. Thread ID zero means current thread. extern int androidSetThreadSchedulingGroup(pid_t tid, int grp); // Change the priority AND scheduling group of a particular thread. The priority // should be one of the ANDROID_PRIORITY constants. Returns INVALID_OPERATION // if the priority set failed, else another value if just the group set failed; Loading @@ -89,13 +83,6 @@ extern int androidSetThreadPriority(pid_t tid, int prio); // Get the current priority of a particular thread. Returns one of the // ANDROID_PRIORITY constants or a negative result in case of error. extern int androidGetThreadPriority(pid_t tid); // Get the current scheduling group of a particular thread. Normally returns // one of the ANDROID_TGROUP constants other than ANDROID_TGROUP_DEFAULT. // Returns ANDROID_TGROUP_DEFAULT if no pthread support (e.g. on host) or if // scheduling groups are disabled. Returns INVALID_OPERATION if unexpected error. // Thread ID zero means current thread. extern int androidGetThreadSchedulingGroup(pid_t tid); #endif #ifdef __cplusplus Loading
include/utils/ThreadDefs.h +0 −7 Original line number Diff line number Diff line Loading @@ -79,13 +79,6 @@ enum { ANDROID_PRIORITY_LESS_FAVORABLE = +1, }; enum { ANDROID_TGROUP_DEFAULT = 0, ANDROID_TGROUP_BG_NONINTERACT = 1, ANDROID_TGROUP_FG_BOOST = 2, ANDROID_TGROUP_MAX = ANDROID_TGROUP_FG_BOOST, }; #ifdef __cplusplus } // extern "C" #endif Loading
libs/binder/IPCThreadState.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <binder/Binder.h> #include <binder/BpBinder.h> #include <cutils/sched_policy.h> #include <utils/Debug.h> #include <utils/Log.h> #include <utils/TextOutput.h> Loading Loading @@ -428,9 +429,9 @@ void IPCThreadState::joinThreadPool(bool isMain) mOut.writeInt32(isMain ? BC_ENTER_LOOPER : BC_REGISTER_LOOPER); // This thread may have been spawned by a thread that was in the background // scheduling group, so first we will make sure it is in the default/foreground // scheduling group, so first we will make sure it is in the foreground // one to avoid performing an initial transaction in the background. androidSetThreadSchedulingGroup(mMyThreadId, ANDROID_TGROUP_DEFAULT); set_sched_policy(mMyThreadId, SP_FOREGROUND); status_t result; do { Loading Loading @@ -473,13 +474,13 @@ void IPCThreadState::joinThreadPool(bool isMain) } // After executing the command, ensure that the thread is returned to the // default cgroup before rejoining the pool. The driver takes care of // foreground cgroup before rejoining the pool. The driver takes care of // restoring the priority, but doesn't do anything with cgroups so we // need to take care of that here in userspace. Note that we do make // sure to go in the foreground after executing a transaction, but // there are other callbacks into user code that could have changed // our group so we want to make absolutely sure it is put back. androidSetThreadSchedulingGroup(mMyThreadId, ANDROID_TGROUP_DEFAULT); set_sched_policy(mMyThreadId, SP_FOREGROUND); // Let this thread exit the thread pool if it is no longer // needed and it is not the main process thread. Loading Loading @@ -1010,8 +1011,7 @@ status_t IPCThreadState::executeCommand(int32_t cmd) // since the driver won't modify scheduling classes for us. // The scheduling group is reset to default by the caller // once this method returns after the transaction is complete. androidSetThreadSchedulingGroup(mMyThreadId, ANDROID_TGROUP_BG_NONINTERACT); set_sched_policy(mMyThreadId, SP_BACKGROUND); } } Loading
libs/utils/Threads.cpp +0 −57 Original line number Diff line number Diff line Loading @@ -324,29 +324,6 @@ pid_t androidGetTid() } #ifdef HAVE_ANDROID_OS int androidSetThreadSchedulingGroup(pid_t tid, int grp) { if (grp > ANDROID_TGROUP_MAX || grp < 0) { return BAD_VALUE; } #if defined(HAVE_PTHREADS) pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup); if (gDoSchedulingGroup) { // set_sched_policy does not support tid == 0 if (tid == 0) { tid = androidGetTid(); } if (set_sched_policy(tid, (grp == ANDROID_TGROUP_BG_NONINTERACT) ? SP_BACKGROUND : SP_FOREGROUND)) { return PERMISSION_DENIED; } } #endif return NO_ERROR; } int androidSetThreadPriority(pid_t tid, int pri) { int rc = 0; Loading Loading @@ -392,40 +369,6 @@ int androidGetThreadPriority(pid_t tid) { #endif } int androidGetThreadSchedulingGroup(pid_t tid) { int ret = ANDROID_TGROUP_DEFAULT; #if defined(HAVE_PTHREADS) // convention is to not call get/set_sched_policy methods if disabled by property pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup); if (gDoSchedulingGroup) { SchedPolicy policy; // get_sched_policy does not support tid == 0 if (tid == 0) { tid = androidGetTid(); } if (get_sched_policy(tid, &policy) < 0) { ret = INVALID_OPERATION; } else { switch (policy) { case SP_BACKGROUND: ret = ANDROID_TGROUP_BG_NONINTERACT; break; case SP_FOREGROUND: ret = ANDROID_TGROUP_FG_BOOST; break; default: // should not happen, as enum SchedPolicy does not have any other values ret = INVALID_OPERATION; break; } } } #endif return ret; } #endif namespace android { Loading