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