Android 使用的用于加快 Google Binder 页面安装速度的补丁集正在开发中,可用于 Linux 6.14。
Binder 对 Android 的进程间通信 (IPC) 仍然至关重要,并且随着即将推出的上游 Linux 内核代码,将能够从更快的页面安装中受益。
Google 工程师 Carlos Llamas 一直在研究这套 9 个性能优化补丁,并在本月早些时候的 v7 系列中进行了解释:
“这些补丁的主要重点是提高活页夹页面安装的性能,主要是通过减少对 mmap_lock 的争用。这个想法是通过利用每个 vma 的锁定和 get_user_pages_remote() 来允许并发页面插入。
不幸的是,这需要将 alloc->lock 自旋锁恢复为互斥锁,以便使用收缩器进行序列化。至少在找到更好的解决方案之前,例如支持页面使用旋转锁进行 zapping。不过,这种权衡仍然是值得的。
还包括其他补丁,用于删除不安全和冗余的内容,例如 alloc->vma 指针或 struct binder_lru_page 概念。
注意:接下来,我将为 Binder 设置一个页面错误处理程序。我相信 Alice Ryhl 关于推迟页面插入的想法将使这最终成为可能。我只需要弄清楚一些性能位,但如果/完成后,binder 中的大部分手动页面插入代码都可以被删除。:)”
截至本周,这些 Binder 补丁已排入由 Greg Kroah-Hartman 维护的 char-misc.git 的 char-misc-next 中。随着补丁现在位于 char-misc-next 中,它们注定要在 Linux 6.14 内核中引入,除非 Linus Torvalds 在最后一刻提出任何问题或疑虑。
Linux 6.14 合并窗口将于 Linux 6.13 稳定版首次亮相后于 1 月下旬打开。
转自 Performance Improvements To Google’s Binder Queued Ahead Of Linux 6.14 – Phoronix
好开心啊~