RFR (S): G1: Fix bug with compressed oops on x86_64 and sparc

Doerr, Martin martin.doerr at sap.com
Wed Apr 17 12:00:11 UTC 2013


Hi John,

we have seen crashes when running SPEC jbb2013 on linux x86_64 with the following options (with our SAPJVM):
-XX:+UseCompressedOops -Xms8192m -Xmx8192m -Xmn1600m -XX:+UseG1GC -XX:SurvivorRatio=4

With these options, our VM uses zero based compressed oops (shift 3).

It crashed with SIGSEGV:

#  SIGSEGV (0xb) at pc=0x000000004a4c2e00, pid=1961, tid=140227895330560
# accessing faulting address: 0x000000004a4c2e00
#
# JRE version: 7.0_21
# Java VM: SAP Java Server VM (7.1.130414 23.5-b02 Apr 14 2013 19:29:41 - dev - optU - linux amd64 - 6 - bas2:193987 (mixed mode) compressed oops)
# Problematic frame:
# C  0x000000004a4c2e00 (sp=0x00007f8959e37ad8) (pc=0x000000004a4c2e00)

The same test is passing since we fixed this issue.

Best regards,
Martin


From: John Cuthbertson [mailto:john.cuthbertson at oracle.com]
Sent: Mittwoch, 17. April 2013 01:42
To: Doerr, Martin
Cc: hotspot-gc-dev at openjdk.java.net
Subject: Re: RFR (S): G1: Fix bug with compressed oops on x86_64 and sparc

Hi Martin,

This looks good to me. Coleen has also reviewed the change and given it the thumbs up. I'll let you get back to me regarding a test case before pushing the changes.

JohnC
On 4/16/2013 1:38 AM, Doerr, Martin wrote:
Hi all,

we found a G1 bug in the template interpreter on x86_64 and sparc with compressed Oops.
"do_oop_store" performs a "store_heap_oop" which compresses the input register.
This compressed Oop is passed to the succeeding g1_write_barrier_post, which is wrong.
Correctly, g1_write_barrier_post needs the uncompressed Oop for the heap region crossing check.

This fix preserves the uncompressed Oop in a register which gets passed to the g1_write_barrier_post:
http://cr.openjdk.java.net/~goetz/webrevs/g1-cOops_bug/<http://cr.openjdk.java.net/%7Egoetz/webrevs/g1-cOops_bug/>

Please supply a bug id and review this change.

Kind regards,
Martin


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20130417/cc24ff25/attachment.htm>


More information about the hotspot-gc-dev mailing list