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

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

    XMLWordPrintable

Details

    • gc
    • b27
    • ppc

    Backports

      Description

        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.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                  Created:
                  Updated:
                  Resolved: