RFR(S): 7069863: G1: SIGSEGV running SPECjbb2011 and -UseBiasedLocking

John Cuthbertson john.cuthbertson at oracle.com
Wed Jul 27 18:07:19 UTC 2011


Hi Everyone,

Can I have a couple of volunteers look over these changes - the webrev 
can be found at: http://cr.openjdk.java.net/~johnc/7069863/webrev.0/

The issue was caused by an implicit null check in generated code not 
firing. The implicit null check did not trap as a result of a mismatch 
between the compressed oops mode and the calculated heap base. Also the 
page below heap base was not being protected. The mismatch between the 
compressed oops mode and heap base was the result of the G1 heap 
initialization code passing in a total heap size (G1 heap and perm) that 
was not a multiple of the alignment passed into the ReservedSpace 
constructor. Hence the preferred heap base address was not correctly 
aligned causing the ReservedSpace to be allocated at an address other 
than the preferred heap base. The page below the heap base was not 
protected because the G1 heap initialization code was calling the wrong 
ReservedSpace constructor.

Testing: the failing test case; various small tests with various 
collectors, large heaps, and +PrintCompressedOopsMode.

Many thanks to Vladimir and Igor for helping to diagnose the issue.

Thanks,

JohnC



More information about the hotspot-gc-dev mailing list