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

Jon Masamitsu jon.masamitsu at oracle.com
Tue Jun 17 20:29:20 UTC 2014


On 6/17/2014 5:12 AM, Per Liden wrote:
> 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.

Per,

Do you have any measurements on how many more nmethods get registered
with this approach (registering an nmethod regardless return from 
detect_scavenge_root_oops()?

Jon

>
> 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