RFR(s): 8046231: G1: Code root location ... from nmethod ... not in strong code roots for region

Per Liden per.liden at oracle.com
Tue Jun 17 12:12:08 UTC 2014


Could I please have this fix reviewed.

Summary: nmethods are only registered with the heap if 
nmethod::detect_scavenge_root_oops() returns true. However, in case the 
nmethod only contains oops to humongous objects 
detect_scavenge_root_oops() will return false and the nmethod will not 
be registered. This will later cause heap verification to fail.

There are several ways in which this can be fixed. One alternative is to 
adjust the verification to ignore humongous oops (since these objects 
will never move). Another alternative is to just register the method 
regardless of what detect_scavenge_root_oops() says. Since we might want 
to allow humongous objects to move in the future this is the proposed fix.

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

Testing:
* gc-test-suite
* manual ad-hoc testing

Thanks!
/Per




More information about the hotspot-gc-dev mailing list