RFR: 8337217: Port VirtualMemoryTracker to use VMATree

Afshin Zafari azafari at openjdk.org
Fri Nov 8 10:51:27 UTC 2024


- `VMATree` is used instead of `SortedLinkList` in new class `VirtualMemoryTrackerWithTree`.
 -  A wrapper/helper `RegionTree` is made around VMATree to make some calls easier.
 -  Both old and new versions exist in the code and can be selected via `MemTracker::set_version()`
 - `find_reserved_region()` is used in 4 cases, it will be removed in further PRs.
 - All tier1 tests pass except one ~that expects a 50% increase in committed memory but it does not happen~  https://bugs.openjdk.org/browse/JDK-8335167.
 - Adding a runtime flag for selecting the old or new version can be added later.
 - Some performance tests are added for new version, VMATree and Treap, to show the idea and should be improved later. Based on the results of comparing speed of VMATree and VMT, VMATree shows ~40x faster response time.

-------------

Commit messages:
 - added some descriptions of how VMT works.
 - Merge remote-tracking branch 'origin/master' into _8337217_nmt_VMT_with_tree
 - fixes after merge with use_tag_inplace
 - fixed merged glitches.
 - Merge remote-tracking branch 'origin/master' into _8337217_nmt_VMT_with_tree
 - Merge remote-tracking branch 'origin/master' into _8337217_nmt_VMT_with_tree
 - snaphot thread stack updated and tested.
 - removed unnecessary line from visit committed region function.
 - fixed hpp gaurd of vmtCommon.
 - Johan's feedback.
 - ... and 33 more: https://git.openjdk.org/jdk/compare/ac82a8f8...1e4fbf21

Changes: https://git.openjdk.org/jdk/pull/20425/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20425&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8337217
  Stats: 3294 lines in 55 files changed: 1520 ins; 1525 del; 249 mod
  Patch: https://git.openjdk.org/jdk/pull/20425.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20425/head:pull/20425

PR: https://git.openjdk.org/jdk/pull/20425


More information about the core-libs-dev mailing list