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