<font size=2 face="sans-serif">Dear all,</font><br><br><font size=2 face="sans-serif">Could you please review the following
change?</font><br><font size=2 face="sans-serif">I created two patches for generate_disjoint_long_copy
with VMX(Vector Multimedia Extension) and VSX(Vector-Scalar Extension).</font><br><br><font size=2 face="sans-serif">Let me share our performance results.
</font><br><font size=2 face="sans-serif">I changed array copy size with aligned
(= src and dst alignments match) and unaligned.</font><br><font size=2 face="sans-serif">It means that I measured performance
with the following four patterns at a time. Long array is 8 byte alignment,
so these patterns will cover align and unaligned case.</font><br><font size=2 face="sans-serif">        System.arraycopy(src,
0, dst, 0, size);</font><br><font size=2 face="sans-serif">        System.arraycopy(src,
0, dst, 1, size);</font><br><font size=2 face="sans-serif">        System.arraycopy(src,
1, dst, 0, size);</font><br><font size=2 face="sans-serif">        System.arraycopy(src,
1, dst, 1, size);</font><br><br><font size=2 face="sans-serif">VMX(max), VSX(max) are aligned score,
while VMX(min),VSX(min) are unaligned score. Scalar is original OpenJDK.</font><br><font size=2 face="sans-serif">VSX got better performance when array
size is less than about 2048 byte, but VSX(min) got worse than VMX in large
array size.</font><br><font size=2 face="sans-serif">It would be overhead of the alignment
in VSX.</font><br><br><img src=cid:_2_9C8102289C80F9F800656EC949257F98 style="border:0px solid;"><br><br><font size=2 face="sans-serif">Server:  8247-22L (POWER8 (3.3GHz
12 cores) x2, 512GB memory), Ubuntu Linux 15.04 ppc64LE (kernel: 3.19.0-18-generic),
</font><br><font size=2 face="sans-serif">OpenJDK (build based on 1.9), JVMARGS:
“-Xmx40g –Xms40g -Xmn20g"</font><br><br><br><font size=2 face="sans-serif">Here are benchmark code and patch files.</font><br><br><br><font size=2 face="sans-serif">In the VMX, it is implemented for ppc
LE only now. (generated with "hg diff -g" under the latest hotspot
directory.)</font><br><font size=2 face="sans-serif">  </font><br><br><br><font size=2 face="sans-serif">Related links:</font><br><font size=2 face="sans-serif">"8154156: PPC64: improve array
copy stubs by using vector instructions"</font><br><a href="https://bugs.openjdk.java.net/browse/JDK-8154156"><font size=2 color=blue face="sans-serif">https://bugs.openjdk.java.net/browse/JDK-8154156</font></a><br><font size=2 face="sans-serif">"PPC64 VSX load/store instructions
in stubs"</font><br><a href="http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2016-April/002419.html"><font size=2 color=blue face="sans-serif">http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2016-April/002419.html</font></a><br><br><br><font size=2 face="sans-serif">Regards,</font><br><font size=2 face="sans-serif">Miki</font><br><br><font size=2 face="sans-serif">+ + + + + + +</font><br><font size=2 face="sans-serif">Miki ENOKI, Ph.D.</font><br><font size=2 face="sans-serif">IBM Research - Tokyo</font><br><br><BR>