[9] RFR (XS): 8153340: Incorrect lower bound for AllocatePrefetchDistance with AllocatePrefetchStyle=3
Zoltán Majó
zoltan.majo at oracle.com
Thu Apr 21 11:30:04 UTC 2016
Hi,
please review the patch for 8153340.
https://bugs.openjdk.java.net/browse/JDK-8153340
Problem: The VM crashes if AllocatePrefetchStyle==3 and
AllocatePrefetchDistance==0. The crash happens due to the way the
address for the first prefetch instruction is calculated [1]:
If distance==0, cache_addr == old_eden_top. Then, cache_adr &=
~(AllocatePrefetchStepSize - 1) which can zero some of the bits of
cache_adr. That result in accesses *before* the newly allocated object.
Solution: Set lower limit of AllocatePrefetchDistance to
AllocatePrefetchStepSize (for AllocatePrefetchStyle == 3). Unquarantine
test.
Webrev:
http://cr.openjdk.java.net/~zmajo/8153340/webrev.00/
Testing:
- JPRT (incl. TestOptionsWithRanges.java)
- local testing on a SPARC machine.
Thank you!
Best regards,
Zoltan
[1]
http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/f27c00e6f6bf/src/share/vm/opto/macro.cpp#l1941
More information about the hotspot-compiler-dev
mailing list