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

C1: Raw version of UnsafeGet generates load barriers

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b11

      Description


      After rebasing the ZGC Generational code to latest openjdk/jdk we hit a crash because a load barrier was generated for some oops that are not supposed to have a load barrier. In upstream ZGC this isn't a problem because these load barriers are just redundant and will find healed good oops. However, in the Generational version un-barriered roots (e.g. thread stacks) have no metadata bits, and we should never perform normal load barriers on them (they are handled by stack watermarks and nmethod barriers).

      This load barrier was introduced with:
      JDK-8266746: C1: Replace UnsafeGetRaw with UnsafeGet when setting up OSR entry block

      which makes UnsafeGet _also_ handle "raw" loads. However, the "raw" path introduced a load barrier. Note that "raw" is often used to denote a function that loads/stores values without using a barrier.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              stefank Stefan Karlsson
              Reporter:
              stefank Stefan Karlsson
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: