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