RFR: 8254913: Increase InlineSmallCode default from 2000 to 2500 for x64

Azeem Jiva azeemj at openjdk.java.net
Wed Oct 21 19:45:17 UTC 2020


On Wed, 21 Oct 2020 19:31:47 GMT, Eric Caspole <ecaspole at openjdk.org> wrote:

>> That is OK, looks good then.
>
> The motivation for this change is, among other things, that we discovered a big regression in this micro in 11 vs 8:
> 
> https://github.com/openjdk/jdk/blob/master/test/micro/org/openjdk/bench/java/lang/NewInstance.java
> 
> jdk1.8.0_271:
> 
> Benchmark                                 Mode  Cnt   Score   Error  Units
> NewInstance.threeDifferentProtected       avgt    5  61.413 ± 0.078  ns/op
> NewInstance.threeDifferentPublic          avgt    5  56.705 ± 0.096  ns/op
> NewInstance.threeDifferentPublicConstant  avgt    5  43.316 ± 0.094  ns/op
> NewInstance.threeDifferentPublicFinal     avgt    5  56.586 ± 0.140  ns/op
> NewInstance.threeSameProtected            avgt    5  46.714 ± 0.045  ns/op
> NewInstance.threeSamePublic               avgt    5  44.565 ± 0.058  ns/op
> 
> jdk-11.0.9:
> 
> Benchmark                                 Mode  Cnt    Score    Error  Units
> NewInstance.threeDifferentProtected       avgt    5  851.560 ± 44.299  ns/op
> NewInstance.threeDifferentPublic          avgt    5  854.080 ±  7.619  ns/op
> NewInstance.threeDifferentPublicConstant  avgt    5  911.749 ± 33.695  ns/op
> NewInstance.threeDifferentPublicFinal     avgt    5  830.804 ± 21.219  ns/op
> NewInstance.threeSameProtected            avgt    5  785.063 ±  2.580  ns/op
> NewInstance.threeSamePublic               avgt    5  792.167 ±  0.538  ns/op
> 
> jdk-11.0.9 w/ -XX:InlineSmallCode=2500:
> 
> Benchmark                                 Mode  Cnt   Score   Error  Units
> NewInstance.threeDifferentProtected       avgt    5  58.091 ± 0.012  ns/op
> NewInstance.threeDifferentPublic          avgt    5  55.514 ± 0.062  ns/op
> NewInstance.threeDifferentPublicConstant  avgt    5  43.233 ± 0.079  ns/op
> NewInstance.threeDifferentPublicFinal     avgt    5  54.955 ± 0.103  ns/op
> NewInstance.threeSameProtected            avgt    5  44.216 ± 0.013  ns/op
> NewInstance.threeSamePublic               avgt    5  44.214 ± 0.009  ns/op
> 
> This carries on into 14, then other fixes in 15 make it go bi-modal where it may or may not get inlined run to run.
> 
> Also, increasing InlineSmallCode for x64 to 2500 makes it now equal to ARM64, which we think is sensible.
> 
> Here are some results on a recent internal testing build of jdk-16 default vs -XX:InlineSmallCode=2500.
> All these results were statistically insignificant.
> 
> Name  Pct-Diff
> ==============
> "SPECjvm2008-Compress-G1", 0.889,
> "SPECjvm2008-Crypto.aes-G1", 2.884,
> "SPECjvm2008-Crypto.rsa-G1", 0.230,
> "SPECjvm2008-Crypto.signverify-G1", 0.824,
> "SPECjvm2008-Derby-ParGC", 0.878,
> "SPECjvm2008-FFT.large-G1", 1.626,
> "SPECjvm2008-FFT.small-G1", 2.023,
> "SPECjvm2008-LU.large-ParGC", -14.624,
> "SPECjvm2008-LU.small-ParGC", -0.633,
> "SPECjvm2008-MPEG-ParGC", 0.326,
> "SPECjvm2008-MonteCarlo-G1", 3.054,
> "SPECjvm2008-MonteCarlo-ZGC", -2.247,
> "SPECjvm2008-SOR.large-ParGC", 10.729,
> "SPECjvm2008-SOR.small-ParGC", 0.127,
> "SPECjvm2008-Serial-ParGC", 0.909,
> "SPECjvm2008-Sparse.large-G1", 0.204,
> "SPECjvm2008-Sparse.small-G1", 0.594,
> "SPECjvm2008-XML.transform-G1", 0.349,
> "SPECjvm2008-XML.validation-G1", 0.378,
> 
> These tests are run on the generally available OCI BM2.52 platform. See https://docs.cloud.oracle.com/en-us/iaas/Content/Compute/References/computeshapes.htm

Should this be backported to 11 then?

-------------

PR: https://git.openjdk.java.net/jdk/pull/705


More information about the hotspot-compiler-dev mailing list