Changes since v1 [1]: - added more detailed commit messages and comments to the priority inheritance patches, including rationale for not using schet_setscheduler() directly, or rt_mutex prio inheritance. No functional changes. [1]: https://lkml.kernel.org/r/20170825093335.100892-1-maco@xxxxxxxxxxx --- The first six patches in this set introduce support for priority inheritance of real-time scheduling policies in binder. With the introduction of Android Treble, functionality that used to be in a single process is now split over two or more processes, which communicate using binder IPC. For latency sensitive operations such as sensor events, Bluetooth audio and rendering, inheriting the (real-time) priority of the caller is crucial to meet requirements. The implementation in this series directly calls into the scheduler to modify priorities, since I haven't found a way to make this work correctly with rt_mutex or other existing priority inheritance mechanisms. I have found the current approach to be reliable, but I'm happy to look into suggestions to make this work with existing infrastructure. More details in the patches themselves. Colin's patch adds a debug ioctl that allows us to more accurately track memory leaks, as it allows us to identify objects to which only remote processes have a reference. The subsequent patches are mostly small fixes and (hopefully) well explained in the commit messages. All patches except 'Add tracing for binder priority inheritance' have already been reviewed by Android engineers and are merged in Android's common kernel trees. --- Colin Cross (1): ANDROID: binder: Add BINDER_GET_NODE_DEBUG_INFO ioctl Martijn Coenen (12): ANDROID: binder: remove proc waitqueue ANDROID: binder: push new transactions to waiting threads. ANDROID: binder: add support for RT prio inheritance. ANDROID: binder: add min sched_policy to node. ANDROID: binder: improve priority inheritance. ANDROID: binder: add RT inheritance flag to node. ANDROID: binder: don't check prio permissions on restore. ANDROID: binder: Don't BUG_ON(!spin_is_locked()). ANDROID: binder: call poll_wait() unconditionally. ANDROID: binder: don't enqueue death notifications to thread todo. ANDROID: binder: don't queue async transactions to thread. ANDROID: binder: Add tracing for binder priority inheritance. drivers/android/binder.c | 773 ++++++++++++++++++++++++++++-------- drivers/android/binder_trace.h | 24 ++ include/uapi/linux/android/binder.h | 63 ++- 3 files changed, 689 insertions(+), 171 deletions(-) -- 2.14.1.581.gf28d330327-goog _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel