Messages in this thread | | | From | Alice Ryhl <> | Date | Thu, 18 Apr 2024 10:21:49 +0200 | Subject | Re: [PATCH 3/4] binder: add support for PF_LARGE_HANDLES |
| |
On Wed, Apr 17, 2024 at 9:15 PM Carlos Llamas <cmllamas@google.com> wrote: > > Introduce the PF_LARGE_HANDLES flag to enable the use of monotonically > increasing counters to generate handles. This improves performance in > transactions when dealing with a large number of references. > > The legacy logic performs an inorder traversal of an rbtree to find the > smallest unused handle. This limitation is due to userspace using the > handles as indexes (e.g. in vectors). The new logic scales much better > but requires userspace to support large handle numbers. > > The benchmark below with 100,000 references shows the performance gains > in binder_get_ref_for_node_olocked() calls with PF_LARGE_HANDLES. > > [ 167.855945] binder_get_ref_for_node_olocked: 17us (flag on) > [ 237.088072] binder_get_ref_for_node_olocked: 18178us (flag off) > > Suggested-by: Tim Murray <timmurray@google.com> > Suggested-by: Alice Ryhl <aliceryhl@google.com> > Signed-off-by: Carlos Llamas <cmllamas@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
| |