[roll] Roll fuchsia [starnix] Avoid copy in `UserBuffer`s buffers

This change avoids an allocation and data copy when using
`UserBuffers{Input,Output}Buffer` to read, peek or write
bytes from/to the buffer.

Performance changes (x64):
```
Test case                                              Improve/regress?  Factor change  Mean before              Mean after
-----------------------------------------------------  ----------------  -------------  -----------------------  -----------------------
fuchsia.starnix.gvisor_benchmarks: Append              improved          0.941-0.988    3662 +/- 59 ns           3531 +/- 28 ns
fuchsia.starnix.gvisor_benchmarks: GetdentsNewFd/512   regressed         1.002-1.021    330.1 +/- 1.4 ns         333.8 +/- 1.7 ns
fuchsia.starnix.gvisor_benchmarks: GetdentsSameFd/512  regressed         1.006-1.016    317.50 +/- 0.95 ns       320.87 +/- 0.62 ns
fuchsia.starnix.gvisor_benchmarks: Pipe/1048576        improved          0.057-0.064    5668607 +/- 31191 ns     342957 +/- 19144 ns
fuchsia.starnix.gvisor_benchmarks: Pipe/262144         improved          0.155-0.200    462380 +/- 8738 ns       81730 +/- 8804 ns
fuchsia.starnix.gvisor_benchmarks: Pipe/32768          improved          0.653-0.794    15903 +/- 211 ns         11491 +/- 970 ns
fuchsia.starnix.gvisor_benchmarks: Pipe/4096           improved          0.905-0.927    4167 +/- 24 ns           3816 +/- 25 ns
fuchsia.starnix.gvisor_benchmarks: Pipe/512            improved          0.930-0.993    3638 +/- 52 ns           3496 +/- 66 ns
fuchsia.starnix.gvisor_benchmarks: RandRead/16777216   improved          0.556-0.589    23324429 +/- 403347 ns   13339240 +/- 150806 ns
fuchsia.starnix.gvisor_benchmarks: RandRead/2097152    improved          0.535-0.558    2848809 +/- 34988 ns     1556648 +/- 14723 ns
fuchsia.starnix.gvisor_benchmarks: RandRead/262144     improved          0.568-0.575    349901 +/- 860 ns        200003 +/- 667 ns
fuchsia.starnix.gvisor_benchmarks: RandRead/32768      improved          0.815-0.960    10357 +/- 434 ns         9158 +/- 364 ns
fuchsia.starnix.gvisor_benchmarks: RandRead/67108864   improved          0.552-0.593    93265424 +/- 1771029 ns  53334729 +/- 877987 ns
fuchsia.starnix.gvisor_benchmarks: Read/16777216       improved          0.498-0.574    21290980 +/- 565151 ns   11396042 +/- 504995 ns
fuchsia.starnix.gvisor_benchmarks: Read/2097152        improved          0.482-0.542    2568618 +/- 77699 ns     1311990 +/- 37375 ns
fuchsia.starnix.gvisor_benchmarks: Read/262144         improved          0.520-0.527    314523 +/- 1168 ns       164644 +/- 377 ns
fuchsia.starnix.gvisor_benchmarks: Read/32768          improved          0.815-0.902    8261 +/- 241 ns          7085 +/- 152 ns
fuchsia.starnix.gvisor_benchmarks: Read/4096           improved          0.889-0.982    3082 +/- 39 ns           2881 +/- 106 ns
fuchsia.starnix.gvisor_benchmarks: Read/67108864       improved          0.494-0.586    85491504 +/- 3259176 ns  46003774 +/- 2156696 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/16777216   improved          0.542-0.611    23230278 +/- 689259 ns   13363048 +/- 402350 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/2097152    improved          0.536-0.601    2829558 +/- 73569 ns     1606288 +/- 48931 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/262144     improved          0.552-0.573    345922 +/- 2182 ns       194570 +/- 2284 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/32768      improved          0.819-0.922    11892 +/- 284 ns         10339 +/- 368 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/4096       improved          0.910-0.972    4575 +/- 60 ns           4305 +/- 86 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/512        improved          0.942-0.988    3052 +/- 12 ns           2944 +/- 58 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/64         improved          0.939-0.999    2848 +/- 30 ns           2758 +/- 57 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/67108864   improved          0.540-0.606    93563828 +/- 2573015 ns  53519912 +/- 1601736 ns
fuchsia.starnix.gvisor_benchmarks: SeqWrite/8          improved          0.932-0.996    2827 +/- 40 ns           2725 +/- 52 ns
fuchsia.starnix.gvisor_benchmarks: Write/1             improved          0.923-0.990    2821 +/- 41 ns           2697 +/- 55 ns
fuchsia.starnix.gvisor_benchmarks: Write/16777216      improved          0.511-0.575    22206100 +/- 392771 ns   12047287 +/- 502617 ns
fuchsia.starnix.gvisor_benchmarks: Write/2097152       improved          0.501-0.564    2681024 +/- 41060 ns     1427019 +/- 62033 ns
fuchsia.starnix.gvisor_benchmarks: Write/262144        improved          0.520-0.525    313517 +/- 1046 ns       163780 +/- 346 ns
fuchsia.starnix.gvisor_benchmarks: Write/32768         improved          0.810-0.867    7632 +/- 128 ns          6396 +/- 109 ns
fuchsia.starnix.gvisor_benchmarks: Write/4096          improved          0.886-0.957    3245 +/- 75 ns           2987 +/- 46 ns
fuchsia.starnix.gvisor_benchmarks: Write/512           improved          0.917-0.990    2865 +/- 56 ns           2729 +/- 50 ns
fuchsia.starnix.gvisor_benchmarks: Write/64            improved          0.925-0.991    2818 +/- 43 ns           2698 +/- 52 ns
fuchsia.starnix.gvisor_benchmarks: Write/67108864      improved          0.525-0.592    86776086 +/- 1697254 ns  48429117 +/- 1964684 ns
fuchsia.starnix.gvisor_benchmarks: Write/8             improved          0.931-0.985    2821 +/- 31 ns           2703 +/- 46 ns
fuchsia.storage: ReadRandomWarm/8192/starnix_tmp       improved          0.869-0.963    4425 +/- 182 ns          4046 +/- 41 ns
fuchsia.storage: ReadSequentialWarm/8192/starnix_tmp   improved          0.883-0.971    5107 +/- 136 ns          4726 +/- 99 ns
fuchsia.storage: WriteRandomCold/8192/starnix_tmp      improved          0.879-0.974    5351 +/- 160 ns          4952 +/- 106 ns
fuchsia.storage: WriteRandomWarm/8192/starnix_tmp      improved          0.854-0.965    4482 +/- 142 ns          4071 +/- 119 ns
fuchsia.storage: WriteSequentialCold/8192/starnix_tmp  improved          0.897-0.984    6632 +/- 229 ns          6225 +/- 73 ns
fuchsia.storage: WriteSequentialWarm/8192/starnix_tmp  improved          0.864-0.972    5244 +/- 189 ns          4803 +/- 108 ns
```

Performance changes (arm64):
```
Test case                                           Improve/regress?  Factor change  Mean before               Mean after
--------------------------------------------------  ----------------  -------------  ------------------------  ----------------------
fuchsia.starnix.gvisor_benchmarks: Pipe/1048576     improved          ci_too_wide    9028459 +/- 68844 ns      652427 +/- 784296 ns
fuchsia.starnix.gvisor_benchmarks: Pipe/262144      improved          ci_too_wide    790158 +/- 16205 ns       161608 +/- 211590 ns
fuchsia.starnix.gvisor_benchmarks: ProcessSwitch/8  improved          0.935-0.994    95425 +/- 1360 ns         91962 +/- 1512 ns
fuchsia.starnix.gvisor_benchmarks: Read/2097152     improved          0.609-0.640    3941694 +/- 29240 ns      2462018 +/- 43043 ns
fuchsia.starnix.gvisor_benchmarks: Read/262144      improved          0.570-0.669    530935 +/- 28869 ns       327581 +/- 8404 ns
fuchsia.starnix.gvisor_benchmarks: Read/32768       improved          0.730-0.774    17944 +/- 102 ns          13495 +/- 317 ns
fuchsia.starnix.gvisor_benchmarks: Read/4096        improved          0.786-0.949    4347 +/- 147 ns           3757 +/- 228 ns
fuchsia.starnix.gvisor_benchmarks: Write/16777216   improved          0.591-0.603    28111063 +/- 181968 ns    16775403 +/- 54045 ns
fuchsia.starnix.gvisor_benchmarks: Write/2097152    improved          0.591-0.617    3681142 +/- 17807 ns      2222925 +/- 35727 ns
fuchsia.starnix.gvisor_benchmarks: Write/262144     improved          0.573-0.617    498511 +/- 10285 ns       296356 +/- 4768 ns
fuchsia.starnix.gvisor_benchmarks: Write/32768      improved          0.772-0.799    16055 +/- 106 ns          12606 +/- 137 ns
fuchsia.starnix.gvisor_benchmarks: Write/4096       improved          0.803-0.959    4722 +/- 170 ns           4146 +/- 220 ns
fuchsia.starnix.gvisor_benchmarks: Write/67108864   improved          0.609-0.626    112459601 +/- 1116055 ns  69440563 +/- 244294 ns
```

Original-Bug: b/310035279, b/298215473, b/318701791
Cq-Include-Trybots: luci.fuchsia.try:core.arm64-cxx20,core.x64-cxx20,core.x64-debug,core.arm64-debug,terminal.x64-release-perfcompare,terminal.vim3-release-perfcompare
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/970994
Original-Revision: a4601bc64a109be5cc18989136d19d8e559778b2
GitOrigin-RevId: 549600a221fd8d75a987f5a3aad007836f52ee10
Change-Id: Ie5a54599d531e0a134d170e2ee0127fb4891d3e1
1 file changed
tree: 17d782e05cd8964929020a3a6d526046aa9bfef7
  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.