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

aarch64: test/compiler/runtime/7196199/Test7196199.java fails

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b89
    • CPU:
      aarch64
    • OS:
      linux

      Backports

        Description

        Testcase test/compiler/runtime/7196199/Test7196199.java fails on some aarch64 HW.

        The problem is that at a SafePoint poll the handler only saves the bottom 64 bits of each vector register rather than the full 128 bits.

        This problem was reported by felix.yang@linaro.org. Here is his original report.

            The testcase passes if MaxVectorSize < 16 or UseLoopSafepoints option is turned off.
            After warmup, the test_incrc method failed verification once loop safe point interrupt triggers for the outer loop.
            Watching at the JIT code, I find that C2 compiler emit superword instruction, i.e., fadd.4s, which uses the full vector registers(128 bits).
            But currently the AArch64 safe point interrupt handler only save/restore a half of each vector register(64 bits), which causes the issue.
            The following patch expands the interrupt handler to support wide vector registers, that is, supporting POLL_AT_VECTOR_LOOP.
            It is kind of similiar to the way X86 port takes to fix the issue. The testcase passes with the patch.
            I am doing a JTReg regression test for the patch, comments and suggestions are welcome.
            Thanks.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  enevill Ed Nevill
                  Reporter:
                  enevill Ed Nevill
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Due:
                    Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - 1 day
                    1d
                    Remaining:
                    Remaining Estimate - 1 day
                    1d
                    Logged:
                    Time Spent - Not Specified
                    Not Specified