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

John Cuthbertson john.cuthbertson at oracle.com
Wed Apr 17 17:46:38 UTC 2013


Hi Martin,

Thanks for getting back to me about the test case. Although I haven't 
seen any jbb2013 failures, the fix is still good. I'll push it today.

JohnC

On 4/17/2013 5:00 AM, Doerr, Martin wrote:
>
> 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/43cceae4/attachment.htm>


More information about the hotspot-gc-dev mailing list