[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
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 in one of the communication channels documented at get involved.
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.