검색 상세

Design and Implementation of Kernel Binder Cache to Accelerate Android IPC

초록/요약

Android supports a variety of service functions via user-level daemons. As applications invoke these service functions through IPC (Inter-Process Communication), accelerating IPC performance is critical to the responsiveness in Android. However, Android provides long IPC latency of more than 240us due to complicated software stacks between the kernel Binder and the user-level process Context Manager. Specifically, Android supports IPC via a virtual device driver called Binder, but actual tasks for IPC such as service function search and management are performed by a user-level process called Context Manager. This separation is advantageous in terms of modularity and flexibility, but degrades the responsiveness of services significantly due to additional context switching and inefficient request handling. To resolve this issue, we analyze the end-to-end path of Android IPC mechanisms and observe that 55% of IPC latency is due to the communication overhead between Binder and Context Manager. Based on this observation, we design and implement a kernel Binder cache that maintains a hot subset of service function mappings, thereby reducing requests transferred to Context Manager. The proposed Binder cache is implemented on Android 5.0 Lollipop. Measurement studies on Nexus 5 show that our Binder cache accelerates IPC performance twofold compared to current Android. © 2016 IEEE.

more