RFR: 8138705: Kitchen sink stress test fails
Zhengyu Gu
zgu at redhat.com
Tue May 17 13:06:41 UTC 2016
Hi Max,
I have not done a complete review.
virtualMemoryTracker.cpp: 63 - 88
Is it possible that newly committed region does not overlap, but covers
an existing region?
The loop can stop when rgn->end_addr >= addr + size
-Zhengyu
On 05/13/2016 03:39 PM, Max Ockner wrote:
> Hello,
> Please review this fix which allows NMT to handle overlapping commits.
>
> Though it would make sense to uncommit space before committing over
> it, this is not always the way things are done. Kitchensink
> encounters some intentional overlapping commits in gc, which
> previously would cause NMT to throw an assert. Now, these overlapping
> commits are handled by recording an uncommit of the newly committed
> region before recording the commit. This effectively chops any of the
> already-committed space off of the existing committed region before
> adding the new commit. In order for this all to work,
> ReservedMemoryRegion::remove_uncommitted_region was changed to support
> uncommitting an arbitrary region. The target behavior of this
> operation is to truncate (or split) committed regions which overlap
> with the region being uncommitted, while only subtracting from the
> total the amount of memory which was actually cleared.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8138705
> Webrev: http://cr.openjdk.java.net/~mockner/8138705/
>
> Tested with jtreg NMT tests. Survived 72 hours of Kitchensink.
> Added a test: runtime/NMT/CommitOverlappingRegions.java
> This test performs various commits and uncommits that overlap in
> different ways, and checks that it computes the amount of committed
> space correctly.
>
> Thanks,
> Max
More information about the hotspot-runtime-dev
mailing list