Re: [PATCH v2] rust_binder: speed up get_node_debug_info using lower_bound iter
Alice Ryhl <[email protected]> Tue, 4 Aug 2026 13:14:27 +0000
| Newsgroups | org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Jul 31, 2026 at 10:31:03AM -0300, Rafael Passos wrote: > Finding the next node in the RBTree can be done more efficiently using > the cursor_lower_bound, as it reduces cost from O(n) to O(log n). > > Link: https://github.com/Rust-for-Linux/linux/issues/1249 > Suggested-by: Alice Ryhl <[email protected]> > Signed-off-by: Rafael Passos <[email protected]> This looks fine to me. Reviewed-by: Alice Ryhl <[email protected]> > It took me a while to get the AOSP + Cuttlefish setup running, and > using the rust binder module. I got it working, and ran: > libhwbinder_benchmark libbinder_benchmark, hwbinderThroughputTest > libhwbinder_latency and binderThroughputTest benches. > But apparently none of them used the function I touched (I added log). > Also, the "hw" variants like hwbinderThroughputTest kept logging a > "worker_fx:217 condition:service->isRemote() failed" message. > I decided to send the v2 anyway. > > I am thinking about writing a benchmark focused on node scaling > (test N iterations with X nodes), and run with small and larger Xs.) > Would such a benchmark be welcome here in upstream mainline ? > It would be in either C or Rust (the AOSP ones are in C++). > Would it live under `tools/perf` ? > > I looked at the kunit tests (`drivers/android/tests`) and they dont > cover the rust binder either. That's another thing I could try to add. In Android this is used by libmemunreachable when checking whether a process has a memory leak. The perf matters because if the number of nodes is very large, invoking the ioctl repeatedly many times could take a seriously large amount of time. Seconds or even more. Alice