[roll] Roll fuchsia [starnix] Prefer `CurrentTask`'s `MemoryAccessor` impl

commit f91be1987f0e0201e6e4a447c0abd81b6e92a031 made a change to
`Task`'s `MemoryAccessor` implementation to always perform operations
through a VMO since generally `Task`'s address space is not mapped in
the current address space. Note that generally only `CurrentTask`'s
address space is mapped in the current address space.

Binder generally use's `Task`'s implementation of `ResourceAccessor`
(which is a sub-trait of `MemoryAccessor`) as the source accessor when
performing some binder transaction. By using `CurrentTask`'s
implementation of `MemoryAccessor` whenever it is available, binder
is able to read/write user bytes directly from the current address
space.

This addresses a performance regression (b/319811334).

x64:
```
Test case                                                      Improve/regress?  Factor change  Mean before           Mean after
-------------------------------------------------------------  ----------------  -------------  --------------------  ----------------------
fuchsia.starnix.binder.latency: FifoSchedulerAvg               improved          0.638-0.932    0.0508 +/- 0.0073 ms  0.0388 +/- 0.0017 ms
fuchsia.starnix.binder.latency: FifoSchedulerMin               improved          0.756-0.847    0.0460 +/- 0.0015 ms  0.03680 +/- 0.00092 ms
fuchsia.starnix.binder.latency: NormalSchedulerAvg             improved          0.628-0.916    0.0472 +/- 0.0073 ms  0.0354 +/- 0.0011 ms
fuchsia.starnix.binder.latency: NormalSchedulerMin             improved          0.714-0.848    0.0432 +/- 0.0023 ms  0.0336 +/- 0.0011 ms
fuchsia.starnix.binder.throughput: SendVecBinder/1024          improved          0.694-0.751    34466 +/- 812 ns      24880 +/- 399 ns
fuchsia.starnix.binder.throughput: SendVecBinder/128           improved          0.667-0.732    32306 +/- 825 ns      22577 +/- 478 ns
fuchsia.starnix.binder.throughput: SendVecBinder/16            improved          0.664-0.734    31463 +/- 1068 ns     21961 +/- 364 ns
fuchsia.starnix.binder.throughput: SendVecBinder/16384         improved          0.856-0.910    76524 +/- 1099 ns     67535 +/- 1070 ns
fuchsia.starnix.binder.throughput: SendVecBinder/2048          improved          0.735-0.783    36802 +/- 674 ns      27909 +/- 382 ns
fuchsia.starnix.binder.throughput: SendVecBinder/256           improved          0.669-0.722    33007 +/- 641 ns      22939 +/- 422 ns
fuchsia.starnix.binder.throughput: SendVecBinder/32            improved          0.664-0.732    31614 +/- 955 ns      22045 +/- 411 ns
fuchsia.starnix.binder.throughput: SendVecBinder/32768         improved          0.899-0.950    123422 +/- 2734 ns    114016 +/- 626 ns
fuchsia.starnix.binder.throughput: SendVecBinder/4             improved          0.659-0.732    31535 +/- 1192 ns     21891 +/- 335 ns
fuchsia.starnix.binder.throughput: SendVecBinder/4096          improved          0.752-0.845    41922 +/- 1776 ns     33382 +/- 531 ns
fuchsia.starnix.binder.throughput: SendVecBinder/512           improved          0.657-0.732    33635 +/- 1040 ns     23320 +/- 536 ns
fuchsia.starnix.binder.throughput: SendVecBinder/64            improved          0.667-0.749    31734 +/- 1140 ns     22415 +/- 491 ns
fuchsia.starnix.binder.throughput: SendVecBinder/8             improved          0.665-0.743    31282 +/- 1047 ns     21989 +/- 476 ns
fuchsia.starnix.binder.throughput: SendVecBinder/8192          improved          0.788-0.869    53538 +/- 1957 ns     44267 +/- 549 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/1024     improved          0.625-0.769    30460 +/- 1488 ns     21124 +/- 1144 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/128      improved          0.653-0.737    30110 +/- 460 ns      20911 +/- 955 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/16       improved          0.637-0.741    30017 +/- 775 ns      20632 +/- 1023 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/16384    improved          0.678-0.768    32814 +/- 1211 ns     23674 +/- 597 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/2048     improved          0.656-0.744    30669 +/- 1043 ns     21419 +/- 612 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/256      improved          0.657-0.757    29972 +/- 1106 ns     21133 +/- 708 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/32       improved          0.653-0.729    30110 +/- 742 ns      20773 +/- 635 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/32768    improved          0.709-0.785    35032 +/- 1136 ns     26134 +/- 482 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/4        improved          0.661-0.732    30139 +/- 826 ns      20958 +/- 498 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/4096     improved          0.670-0.736    30974 +/- 461 ns      21768 +/- 702 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/512      improved          0.651-0.758    30205 +/- 1198 ns     21213 +/- 781 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/64       improved          0.669-0.725    30229 +/- 967 ns      21037 +/- 165 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/65536    improved          0.755-0.852    39473 +/- 1159 ns     31661 +/- 977 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/8        improved          0.645-0.731    30124 +/- 984 ns      20676 +/- 618 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/8192     improved          0.663-0.753    31676 +/- 824 ns      22383 +/- 835 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/128    regressed         1.024-1.204    114701 +/- 597 ns     127723 +/- 9662 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/16     regressed         1.085-1.202    115445 +/- 4138 ns    131780 +/- 1998 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/32     regressed         1.106-1.181    114960 +/- 2275 ns    131377 +/- 1707 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/32768  improved          0.936-0.974    173469 +/- 2510 ns    165634 +/- 953 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/4      regressed         1.104-1.186    115393 +/- 3177 ns    131983 +/- 1127 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/4096   improved          0.871-0.977    119504 +/- 2243 ns    110282 +/- 4239 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/512    regressed         1.008-1.067    115228 +/- 1079 ns    119485 +/- 2304 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/64     regressed         1.089-1.194    113894 +/- 1587 ns    129938 +/- 4140 ns
fuchsia.starnix.remote_binder.throughput: SendVecBinder/8      regressed         1.101-1.186    115539 +/- 2330 ns    132042 +/- 2258 ns
```

arm64:
```
Test case                                                    Improve/regress?  Factor change  Mean before           Mean after
-----------------------------------------------------------  ----------------  -------------  --------------------  --------------------
fuchsia.starnix.binder.latency: FifoSchedulerMin             improved          0.672-0.884    0.0966 +/- 0.0071 ms  0.0744 +/- 0.0047 ms
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/1024   improved          0.589-0.633    42335 +/- 733 ns      25852 +/- 469 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/128    improved          0.588-0.627    41978 +/- 676 ns      25500 +/- 401 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/16     improved          0.570-0.645    42203 +/- 1965 ns     25559 +/- 382 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/16384  improved          0.634-0.673    46848 +/- 698 ns      30610 +/- 468 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/2048   improved          0.601-0.637    42565 +/- 607 ns      26333 +/- 394 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/256    improved          0.589-0.628    42052 +/- 689 ns      25589 +/- 402 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/32     improved          0.563-0.686    41763 +/- 654 ns      26037 +/- 2151 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/32768  improved          0.681-0.719    51252 +/- 629 ns      35859 +/- 543 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/4      improved          0.590-0.628    41900 +/- 889 ns      25511 +/- 253 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/4096   improved          0.607-0.639    43173 +/- 552 ns      26886 +/- 349 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/512    improved          0.603-0.621    42279 +/- 331 ns      25864 +/- 186 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/64     improved          0.587-0.649    41919 +/- 762 ns      25888 +/- 829 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/65536  improved          0.732-0.783    60057 +/- 1349 ns     45460 +/- 530 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/8      improved          0.593-0.631    41850 +/- 963 ns      25586 +/- 201 ns
fuchsia.starnix.hwbinder.throughput: SendVecBinderize/8192   improved          0.613-0.646    44489 +/- 630 ns      28013 +/- 340 ns
```

Note that the regression with some x64 remote binder benchmarks is
tracked in b/309868146.

Bub: b/309868146
Original-Fixed: b/319811334
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/975617
Original-Revision: 7a9b7e18c86c1054f0d4c2bfc56f4d5f0433b371
GitOrigin-RevId: df1889c3d36dbe841ba9ad120724213934c8d696
Change-Id: Id943fe7c072b60fe3bc0f2b3fa35213b3786fb84
1 file changed
tree: c4bbb07f32355d388a7ed935175cfa6f2f290e1b
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.