[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
This repository contains Fuchsia's Global Integration manifest files.
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.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.