Skip to content

Commit 46e3238

Browse files
Steven MorelandGerrit Code Review
authored andcommitted
Merge "libbinder_ndk: _disableBackgroundScheduling" into main
2 parents af488c0 + 637dc97 commit 46e3238

4 files changed

Lines changed: 20 additions & 0 deletions

File tree

libs/binder/ndk/include_platform/android/binder_ibinder_platform.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ __attribute__((weak, warn_unused_result)) const char* AIBinder_getCallingSid() _
6262
* This must be called before the object is sent to another process.
6363
* Aborts on invalid values. Not thread safe.
6464
*
65+
* This overrides the setting in ABinderProcess_disableBackgroundScheduling.
66+
*
6567
* \param binder local server binder to set the policy for
6668
* \param policy scheduler policy as defined in linux UAPI
6769
* \param priority priority. [-20..19] for SCHED_NORMAL, [1..99] for RT

libs/binder/ndk/include_platform/android/binder_process.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ bool ABinderProcess_isThreadPoolStarted(void);
7474
*/
7575
void ABinderProcess_joinThreadPool(void);
7676

77+
/**
78+
* Disables (or enables) background scheduling.
79+
*
80+
* By default, binder threads execute at a lower priority. However, this can cause
81+
* priority inversion, so it is recommended to be disabled in high priority
82+
* or in system processes.
83+
*
84+
* See also AIBinder_setMinSchedulerPolicy, which overrides this setting.
85+
*
86+
* \param disable whether to disable background scheduling
87+
*/
88+
void ABinderProcess_disableBackgroundScheduling(bool disable);
89+
7790
/**
7891
* This gives you an fd to wait on. Whenever data is available on the fd,
7992
* ABinderProcess_handlePolledCommands can be called to handle binder queries.

libs/binder/ndk/libbinder_ndk.map.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ LIBBINDER_NDK_PLATFORM {
229229
AIBinder_fromPlatformBinder*;
230230
AIBinder_toPlatformBinder*;
231231
AParcel_viewPlatformParcel*;
232+
ABinderProcess_disableBackgroundScheduling;
232233
};
233234
local:
234235
*;

libs/binder/ndk/process.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ void ABinderProcess_joinThreadPool(void) {
3636
IPCThreadState::self()->joinThreadPool();
3737
}
3838

39+
void ABinderProcess_disableBackgroundScheduling(bool disable) {
40+
IPCThreadState::disableBackgroundScheduling(disable);
41+
}
42+
3943
binder_status_t ABinderProcess_setupPolling(int* fd) {
4044
return IPCThreadState::self()->setupPolling(fd);
4145
}

0 commit comments

Comments
 (0)