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