RFR: JDK-8141634 Implement VarHandles/Unsafe intrinsics on SPARC
Zoltán Majó
zoltan.majo at oracle.com
Fri Aug 5 18:59:18 UTC 2016
Hi Trevor,
thank you for working on this enhancement!
I executed all tests in the hotspot/test directory for your proposed
change. Unfortunately, five tests fail:
compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java
compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java
compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java
compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java
compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java
You can find more information about the failures (incl. a stack trace)
here [1].
The failures can be reproduced using JTREG. I've used a SPARC T5
machine to reproduce them. Please let me know if you need more
information on the setup I used to reproduce the failures. Also, could
you please execute the hotspot/compiler tests locally on a SPARC machine
before sending out the updated webrev? That way we will catch failures
earlier.
Thank you!
Best regards,
Zoltan
[1]
https://bugs.openjdk.java.net/browse/JDK-8141634?focusedCommentId=13983682&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13983682
On 07/29/2016 01:37 AM, Trevor Watson wrote:
> Summary:
>
> SPARC assembler implementations of the compareAndExchange* intrinsics
> and the addition of the WeakCompareAndSwap* matchers.
>
> Have successfully run the 'gmake test' target and the benchmarks
> mentioned in the bug report.
>
> Benchmarks for the compareAndExchange* intrinsic operations now show
> an approximate 9x-20x improvement:
>
> Before:
> Benchmark Mode Cnt Score Error Units
> caeAcquire.IntTest.varHandle avgt 15 351.933 ? 7.161 ns/op
> caeAcquire.LongTest.varHandle avgt 15 435.872 ? 3.129 ns/op
> caeAcquire.ObjectTest.varHandle avgt 15 975.728 ? 88.362
> ns/op
> caeRelease.IntTest.varHandle avgt 15 346.391 ? 2.798 ns/op
> caeRelease.LongTest.varHandle avgt 15 439.734 ? 9.739 ns/op
> caeRelease.ObjectTest.varHandle avgt 15 934.279 ? 19.454
> ns/op
> caeVolatile.IntTest.varHandle avgt 15 346.076 ? 1.771 ns/op
> caeVolatile.LongTest.varHandle avgt 15 436.788 ? 1.825 ns/op
> caeVolatile.ObjectTest.varHandle avgt 15 935.250 ? 59.526
> ns/op
>
> With new intrinsic implementation:
> caeAcquire.IntTest.varHandle avgt 15 38.514 ? 0.974 ns/op
> caeAcquire.LongTest.varHandle avgt 15 38.411 ? 0.359 ns/op
> caeAcquire.ObjectTest.varHandle avgt 15 42.616 ? 0.916 ns/op
> caeRelease.IntTest.varHandle avgt 15 38.235 ? 0.185 ns/op
> caeRelease.LongTest.varHandle avgt 15 38.165 ? 0.145 ns/op
> caeRelease.ObjectTest.varHandle avgt 15 42.320 ? 0.156 ns/op
> caeVolatile.IntTest.varHandle avgt 15 38.321 ? 0.221 ns/op
> caeVolatile.LongTest.varHandle avgt 15 38.270 ? 0.198 ns/op
> caeVolatile.ObjectTest.varHandle avgt 15 42.541 ? 0.720 ns/op
>
>
> Webrev: http://cr.openjdk.java.net/~alanbur/JDK-8141634/
> Bug link: https://bugs.openjdk.java.net/browse/JDK-8141634
More information about the hotspot-dev
mailing list