RFR: 8222462: Introduce CollectedHeap::unused()

Per Liden per.liden at oracle.com
Mon Apr 15 06:49:57 UTC 2019


JVM_FreeMemory() has two problems:

1) It currently uses Heap_lock to protect capacity() and used() from 
changing while calculating the amount of free memory available. However, 
Heap_lock is doesn't protect capacity() and used() in all collectors, 
and as a result, JVM_FreeMemory() could return a negative value.

2) The amount of free memory is not always calculated using capacity() - 
used(). For ZGC, we also want to take the reserve into account.

The proposed solution is to introduce CollectedHeap::unused() (the name 
is chosen to match CollectedHeap::used()), so that we can delegate this 
calculation to the GC.

Testing: tier1-3

Bug: https://bugs.openjdk.java.net/browse/JDK-8222462
Webrev: http://cr.openjdk.java.net/~pliden/8222462/webrev.0

/Per



More information about the hotspot-gc-dev mailing list