RFR: 8058963: CollectorPolicy::satisfy_failed_metadata_allocation can avoid some safepoints

Erik Helin erik.helin at oracle.com
Tue Sep 23 15:15:58 UTC 2014


Hi all,

this small change enables us to skip two possible safepoints in 
CollectorPolicy::satisfy_failed_metadata_allocation:

1. When a thread continues a loop after having been stalled due to a 
GC_locker initiated Full GC.
2. When the VM_CollectForMetadata VM operation's prologue fails because 
a full GC has already been run just prior to the CollectForMetadata VM 
operation.

The way this is done is simply by trying to allocate at the start of the 
loop. This way, whenever we loop around and a full GC has happened, the 
allocation request might be satisfied and we can do an early return.

Webrev:
http://cr.openjdk.java.net/~ehelin/8058963/webrev.00/

Bug:
https://bugs.openjdk.java.net/browse/JDK-8058963

Testing:
- JPRT
- Aurora:
   - Kitchensink
   - Weblogic+Medrec
   - runThese
   - vm.quick, regression, gc, compiler, runtime, parallel class loading,
     metaspace, oom
   - JTReg tests

Thanks,
Erik



More information about the hotspot-gc-dev mailing list