[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/+/1254551 Original-Revision: 4ba65d600dfb847d55765c0413080ca466743830 GitOrigin-RevId: 20b1fa397361329e0a22793649e2fd39e8142f1f Change-Id: I65721b5892116b508a85c4cc72186d4003b22397
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.