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