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

assert(VM_Version::supports_sse()) failed

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 10
    • Fix Version/s: 10
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Resolved In Build:
      b21

      Description

      Test:
      compiler/c1/Test6855215.java
      compiler/c1/Test6579789.java

      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (c:/jprt/T/P1/172511.gctriant/s/hotspot/src/cpu/x86/vm/assembler_x86.cpp:2826), pid=43440, tid=56440
      # Error: assert(VM_Version::supports_sse()) failed
      #
      # JRE version: (10.0) (fastdebug build )
      # Java VM: Java HotSpot(TM) Server VM (fastdebug 10-internal+0-2017-06-12-172511.gctriant.jdk10-hs, compiled mode, tiered, g1 gc, windows-x86)

      --------------- T H R E A D ---------------

      Current thread (0x00e8b000): JavaThread "Unknown thread" [_thread_in_vm, id=56440, stack(0x02750000,0x027a0000)]

      Stack: [0x02750000,0x027a0000], sp=0x0279f4dc, free space=317k
      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [jvm.dll+0x8f934b] VMError::report_and_die+0x47b;; ?report_and_die@VMError@@SAXHPBD0PADPAVThread@@PAEPAX40HI@Z+0x47b
      V [jvm.dll+0x8f9847] VMError::report_and_die+0x27;; ?report_and_die@VMError@@SAXPAVThread@@PBDH11PAD@Z+0x27
      V [jvm.dll+0x3dda58] report_vm_error+0x48;; ?report_vm_error@@YAXPBDH00ZZ+0x48
      V [jvm.dll+0x1f90c3] Assembler::movss+0x43;; ?movss@Assembler@@IAEXPAVXMMRegisterImpl@@VAddress@@@Z+0x43
      V [jvm.dll+0x8a18e3] TemplateInterpreterGenerator::generate_math_entry+0x1b3;; ?generate_math_entry@TemplateInterpreterGenerator@@IAEPAEW4MethodKind@AbstractInterpreter@@@Z+0x1b3
      V [jvm.dll+0x89ada7] TemplateInterpreterGenerator::generate_all+0xae7;; ?generate_all@TemplateInterpreterGenerator@@IAEXXZ+0xae7
      V [jvm.dll+0x89a2b9] TemplateInterpreterGenerator::TemplateInterpreterGenerator+0x29;; ??0TemplateInterpreterGenerator@@QAE@PAVStubQueue@@@Z+0x29
      V [jvm.dll+0x899ed9] TemplateInterpreter::initialize+0x99;; ?initialize@TemplateInterpreter@@SAXXZ+0x99
      V [jvm.dll+0x5406d5] interpreter_init+0x5;; ?interpreter_init@@YAXXZ+0x5
      V [jvm.dll+0x8b5ec2] Threads::create_vm+0x212;; ?create_vm@Threads@@SAHPAUJavaVMInitArgs@@PA_N@Z+0x212
      V [jvm.dll+0x5bf955] JNI_CreateJavaVM_inner+0x85;; ?JNI_CreateJavaVM_inner@@YAHPAPAUJavaVM_@@PAPAXPAX@Z+0x85
      V [jvm.dll+0x5c18bf] JNI_CreateJavaVM+0x4f;; _JNI_CreateJavaVM@12+0x4f
      C [java.exe+0x2a45]
      C [java.exe+0x3006]

        Issue Links

          Activity

          Hide
          kvn Vladimir Kozlov added a comment - - edited
          The problem is that -XX:UseSSE=0 is used by these tests. I doubt it should be P2 - we don't support hardware where SSE is not available. It is artificial case and and it is only 32-bit. I think a lot of places will break if we switch off SSE because we can't use XMM registers.
          Most likely the code which breaks is introduced by JDK-8154122: "Intrinsify fused mac operations" which was added in JDK 9:
          http://hg.openjdk.java.net/jdk10/jdk10/hotspot/rev/ca56c5db7157#l14.2

          Show
          kvn Vladimir Kozlov added a comment - - edited The problem is that -XX:UseSSE=0 is used by these tests. I doubt it should be P2 - we don't support hardware where SSE is not available. It is artificial case and and it is only 32-bit. I think a lot of places will break if we switch off SSE because we can't use XMM registers. Most likely the code which breaks is introduced by JDK-8154122 : "Intrinsify fused mac operations" which was added in JDK 9: http://hg.openjdk.java.net/jdk10/jdk10/hotspot/rev/ca56c5db7157#l14.2
          Hide
          iignatyev Igor Ignatyev added a comment -
          if we don't support h/w w/o SSE, shouldn't we prohibit UseSSE==0 and report a JVM init-time error if there is no SSE?
          Show
          iignatyev Igor Ignatyev added a comment - if we don't support h/w w/o SSE, shouldn't we prohibit UseSSE==0 and report a JVM init-time error if there is no SSE?
          Hide
          kvn Vladimir Kozlov added a comment - - edited
          Note, 64-bit UseSSE min value is 2 and you will get warning otherwise.
          The only problem is 32-bit x86 - where we did support SSE == 0 for some time. But we did not test this for long time and it may be rotten now.
          I surprise that we hit this failure only now when JDK-8154122 was pushed 9 months ago. What was changed.

          It looks like it is due to this recent change JDK-8181616 which replaced UseSSE >= 2 with supports_avx():

          http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/78408191085a#l5.2
          http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/78408191085a#l6.7

          Based on this the simplest fix is restore UseSSE check:

          - if (supports_fma()) {
          + if (supports_fma() && UseSSE >= 2) { // Check UseSSE since code use sse instructions
          Show
          kvn Vladimir Kozlov added a comment - - edited Note, 64-bit UseSSE min value is 2 and you will get warning otherwise. The only problem is 32-bit x86 - where we did support SSE == 0 for some time. But we did not test this for long time and it may be rotten now. I surprise that we hit this failure only now when JDK-8154122 was pushed 9 months ago. What was changed. It looks like it is due to this recent change JDK-8181616 which replaced UseSSE >= 2 with supports_avx(): http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/78408191085a#l5.2 http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/78408191085a#l6.7 Based on this the simplest fix is restore UseSSE check: - if (supports_fma()) { + if (supports_fma() && UseSSE >= 2) { // Check UseSSE since code use sse instructions
          Hide
          hgupdate HG Updates added a comment -
          URL: http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/1a8a88213ae8
          User: kvn
          Date: 2017-06-16 20:38:33 +0000
          Show
          hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/1a8a88213ae8 User: kvn Date: 2017-06-16 20:38:33 +0000
          Hide
          hgupdate HG Updates added a comment -
          URL: http://hg.openjdk.java.net/jdk10/jdk10/hotspot/rev/1a8a88213ae8
          User: jwilhelm
          Date: 2017-08-18 18:01:35 +0000
          Show
          hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk10/jdk10/hotspot/rev/1a8a88213ae8 User: jwilhelm Date: 2017-08-18 18:01:35 +0000

            People

            • Assignee:
              kvn Vladimir Kozlov
              Reporter:
              jwilhelm Jesper Wilhelmsson
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: