[9] RFR (XS): 8151708: C1 FastTLABRefill can allocate TLABs past the end of the heap
Tobias Hartmann
tobias.hartmann at oracle.com
Thu Apr 14 12:15:19 UTC 2016
Hi Zoltan,
On 14.04.2016 13:47, Zoltán Majó wrote:
> Hi,
>
>
> please review the patch for 8151708.
>
> https://bugs.openjdk.java.net/browse/JDK-8151708
>
> Problem: On solaris_sparc, the VM can set the TLAB's top pointer to a value past the end of the Java heap. The problem appears with large values of MinTLABSize.The reason for the problem is that the 'brcs' instruction at
>
> http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/a76d63163758/src/cpu/sparc/vm/macroAssembler_sparc.cpp#l3260
> http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/a76d63163758/src/cpu/sparc/vm/macroAssembler_sparc.cpp#l3265
>
> checks the condition codes in 'icc' (32-bit), but not in 'xcc' (64-bit).
I would simply replace the 'br' by 'brx' which tests either xcc or icc depending on the architecture.
Best regards,
Tobias
> Solution: As the VM is handling addresses at the above-mentioned locations, the appropriate condition codes are supposed to be checked. Use 'BPcc' instead of 'Bicc' at these locations.
>
> Webrev:
> http://cr.openjdk.java.net/~zmajo/8151708/webrev.00/
>
> Testing:
> - JPRT
> - reproducer on solaris_sparc.
>
> Thank you!
>
> Best regards,
>
>
> Zoltan
>
More information about the hotspot-compiler-dev
mailing list