Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8320807

[PPC64][ZGC] C1 generates wrong code for atomics

XMLWordPrintable

    • gc
    • b27
    • ppc

        The test java/lang/Thread/virtual/stress/Skynet.java#ZGenerational often hangs or throws RejectedExecutionException: Queue capacity exceeded.
        The issue occurs only when C1 is enabled. "-XX:DisableIntrinsic=_getAndSetReference" was found as possible workaround.
        Further analysis shows that atomic_xchg_at_resolved generates wrong code because it calls xchg with colliding registers which are not handled correctly in the PPC64 code. In addition, memory barriers are missing because PPC64 code currently adds them in LIR instead of in the assembler.

              mdoerr Martin Doerr
              mdoerr Martin Doerr
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: