[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