The uncommit operation has no MEMFLAGS parameter. If we use VMATree::reserve_mapping(from, size, RegionData) a flag should be provided to the API. Since the uncommit API from VirtualMemoryTracker/MemTracker has no flag, the mtNone (or F_X) is to be passed instead. Then, VMATree accounts the 'size' as reserved for flag mtNone (or F_X) which is not correct.
reserve_mapping(100,50, F_1);
commit_mapping(120,20);
reserve_mapping(120,10, F_X); // uncommitting 10, F_X != F_1
// results in SummaryDiff[F_X].reserve == +10;
reserve_mapping(100,50, F_1);
commit_mapping(120,20);
reserve_mapping(120,10, F_X); // uncommitting 10, F_X != F_1
// results in SummaryDiff[F_X].reserve == +10;
- links to
-
Commit(master) openjdk/jdk/15815089
-
Review(master) openjdk/jdk/20330