Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 5623d1a7 authored by Steven Moreland's avatar Steven Moreland
Browse files

libbinder: RpcAddress is uint64_t

This was originally a 32 byte array filled by /dev/urandom, because the
expectation was to build off of this in order to allow for transitive
binder sends (process A sends a binder to process B which sends it to
process C and then allowing C to talk directly to process A - this would
need some large cryptographic token representing the binder and address
information in order to securely open up a new communication channel to
A).

However, this is currently not supported in RPC binder (and even if it
were - which I find unlikely b/c of the security complexity, a lot more
work would need to be done). Simply, we don't need to pay this cost
since we're not using it.

Bug: 182940634
Fixes: 182939933
Test: binderRpcBenchmark
------------------------------------------------------------------------------------
Benchmark                                          Time             CPU
------------------------------------------------------------------------------------
// before this change
BM_repeatBinder/0                              61680 ns        33016 ns
BM_repeatBinder/1                             162368 ns        87825 ns

// after this change
BM_repeatBinder/0                              60041 ns        32787 ns
BM_repeatBinder/1                             109857 ns        55605 ns

-> reduce overhead of rpc binder (when sending many binders) by the
overhead of a normal kernel binder call (still a ways to go)

Change-Id: If27bffb5611bdd17f16156ddfe50ac2449f6046a
parent 826367f2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment