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

correctness fixes motivated by contended locking work (6607129)

    Details

    • Subcomponent:
    • Resolved In Build:
      b17
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        Work on contended locking via 6607129 has uncovered several correctness fixes:

        1a) Add missing fence() to end of os::PlatformEvent::park() on both
            Linux and Solaris
        1b) Add missing barrier to Parker::park() by using Atomic::xchg()
            to query _counter field (barrier is now on both code paths)
            on Linux only.
        1c) Remove assert in java_lang_Thread::set_thread_status()
        1d) Add missing fence() in ObjectMonitor::EnterI() (all platforms)
        1e) Remove set of "_count = 0" in ObjectMonitor::set_owner() to
            avoid race with setting of _count during inflation.

        Update: forgot to include the notes section:

        Notes:
        1c) The java_lang_Thread::set_thread_status() change is needed for
            the pending quick monitor operations. This means the change is
            potentially needed for several other buckets so I put it in the
            bug_fix bucket as a "common" place.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  dcubed Daniel Daugherty
                  Reporter:
                  dcubed Daniel Daugherty
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: