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

enhancement of cmpxchg and copy_to_survivor for ppc64

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 11
    • Component/s: hotspot
    • Subcomponent:
      gc
    • Resolved In Build:
      b17
    • CPU:
      arm, ppc

      Backports

        Description

        The current implementation of cmpxchg was done in a sequential consistent way.
        On PPC64, it uses a sync instruction before and one after the cmpxchg code which is the most conservative implementation.
        However, these sync instructions cause overhead because they are very expensive in the current POWER chip design.

        Proposed Enhancement (by Hiroshi H Horii):
        Callers can explicitly specify memory barriers. Default value must be conservative so it is not necessary to change all callers.

        The change will improve performance of copy_to_survivor in the parallel GC.
        copy_to_survivor changes forward pointers by using cmpxchg. This operation doesn't require any sync instructions.
        A pointer is changed at most once in a GC and when cmpxchg fails, the latest pointer is available for the caller.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  horii Hiroshi Horii
                  Reporter:
                  mdoerr Martin Doerr
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: