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

PPC64 (part 211): ordering of Independent Reads of Independent Writes

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: port-stage-ppc-aix
    • Fix Version/s: port-stage-ppc-aix
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      master
    • CPU:
      ppc

      Backports

        Description

        Implementation of memory ordering on PPC for volatile/unsafe accesses.
        This supports ordering of "Independent Reads of Independent Writes"
        as tested by VolatileIRIWTest of the torture test suite:

         Example: volatile x=0, y=0
        _________ __________ __________ __________
         | Thread 0 | | Thread 1 | | Thread 2 | | Thread 3 |

           write(x=1) read(x) write(y=1) read(y)
                         read(y) read(x)

         Disallowed: x=1, y=0 y=1, x=0

        Solution: This example requires multiple-copy-atomicity. This is only
        assured by the sync instruction and if it is executed in the thread
        doing the load. Thus we implement volatile read as sync-load-acquire
        and omit the sync/MemBarVolatile after the volatile store, as
        MemBarVolatile happens to be implemented by sync.

        This addresses a similar issue as fix "8012144: multiple SIGSEGVs
        fails on staxf" for taskqueue.hpp.

        Further this change contains a fix that assures that volatile fields
        written in constructors are visible before the reference gets
        published.


        ---------------------------------

        This is preparation for PPC64 integration: http://openjdk.java.net/jeps/175
        This and following ppc64 changes will go into staging repository first and tested there: http://hg.openjdk.java.net/ppc-aix-port/stage/

        http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/09f97b967480/ppc_patches/0211_rt-order_reads_of_writes.patch

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  goetz Goetz Lindenmaier
                  Reporter:
                  goetz Goetz Lindenmaier
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: