[roll] Roll fuchsia [starnix][mm] Switch to RangeMap2

This CL switches the Starnix MemoryManager to use the RangeMap
implementation. The new RangeMap implementation uses 5 MiB less memory
on typical workload and is faster:

```
Test case                                                                        Improve/regress?  Factor change  Mean before               Mean after
-------------------------------------------------------------------------------  ----------------  -------------  ------------------------  -------------------------
fuchsia.fidl_microbenchmarks: CPP/Decode/Table/Unset/16/Steps.Teardown/WallTime  regressed         1.000-1.015    127.23 +/- 0.24 ns        128.19 +/- 0.70 ns
fuchsia.microbenchmarks.starnix: ForkMultiple/64.fork                            regressed         1.004-1.027    18919215 +/- 134558 ns    19213121 +/- 82571 ns
fuchsia.microbenchmarks.starnix: ForkMultiple/8.fork                             regressed         1.003-1.022    2351133 +/- 14514 ns      2380439 +/- 8471 ns
fuchsia.microbenchmarks.starnix: ForkMultipleNested/64.fork                      regressed         1.006-1.023    27651024 +/- 121743 ns    28047858 +/- 119788 ns
fuchsia.microbenchmarks.starnix: ForkMultipleNested/64.wait                      improved          0.980-0.997    7915500 +/- 52420 ns      7820997 +/- 14896 ns
fuchsia.microbenchmarks.starnix: ForkMultipleNested/8.fork                       regressed         1.005-1.024    3144786 +/- 19676 ns      3189831 +/- 10624 ns
fuchsia.microbenchmarks.starnix: ForkMultipleNested/8.wait                       improved          0.985-1.000    873379 +/- 3888 ns        866946 +/- 2537 ns
fuchsia.microbenchmarks.starnix: ProcessSpawn                                    regressed         1.000-1.011    1644517 +/- 5333 ns       1653608 +/- 3379 ns
fuchsia.microbenchmarks: Vmo/Clone/MapParent16segments/32768kbytes.clone         regressed         1.004-1.050    71071 +/- 1045 ns         72962 +/- 556 ns
fuchsia.microbenchmarks: Vmo/Clone/MapParent1segments/32768kbytes.clone          regressed         1.004-1.049    70515 +/- 974 ns          72342 +/- 592 ns
fuchsia.microbenchmarks: Vmo/Clone/MapParent1segments/32768kbytes.close          regressed         1.000-1.028    137133 +/- 1005 ns        139054 +/- 864 ns
fuchsia.microbenchmarks: Vmo/Clone/MapParent512segments/32768kbytes.clone        regressed         1.005-1.054    71160 +/- 1114 ns         73240 +/- 622 ns
fuchsia.microbenchmarks: Vmo/Clone/MapParent8192segments/32768kbytes.clone       regressed         1.005-1.055    71779 +/- 996 ns          73916 +/- 779 ns
fuchsia.starnix.gvisor_benchmarks: MapTouchMany/4096                             improved          0.547-0.567    124423541 +/- 753155 ns   69287694 +/- 877064 ns
fuchsia.starnix.gvisor_benchmarks: MapTouchMany/512                              improved          0.915-0.958    8693252 +/- 90227 ns      8138916 +/- 102972 ns
fuchsia.starnix.gvisor_benchmarks: ThreadStart/2048                              improved          0.863-0.945    508857672 +/- 5907064 ns  459887029 +/- 15539489 ns

```

The new RangeMap data structure also supports copy-on-write semantics,
but Starnix does not use the copy-on-write functionality in this CL. We
can start using that functionality in a later CL.

Original-Bug: b/392735168
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1257806
Original-Revision: 9923b4701fb977b76542029508f90a849f6046d4
GitOrigin-RevId: 1c3f4d721601fdc85cb975556e5aad23bcdbb09d
Change-Id: I34e8931c7e34fb7d88be43b0a90dca4c2f8e034f
1 file changed
tree: df8d29ba8caf6ebd1ab960b1311a23ee381c8cce
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. 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 in one of the communication channels documented at get involved.

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.