Uploaded image for project: 'JikesRVM'
  1. JikesRVM
  2. RVM-1106

Assertion failure in AssemblerOpt when emitting CMPXCHG8B

    Details

      Description

      There's an assertion failure in AssemblerOpt when running ScheduledExecutorSubclassTest and ScheduledExecutorTest from the jsr-166tck test run with -X:enable_recompilation_false and -X:irc:O1 or -X:irc:O2.

      The failing line is:

      if (VM.VerifyAssertions && !isRegInd(MIR_CompareExchange8B.getMemAddr(inst))) VM._assert(VM.NOT_REACHED, inst.toString());
      

      Log (from actors where this was occuring previously):

      AOS: In non-adaptive mode; controller thread exiting.
      Using scaled threading model. 2 processors detected, 2 threads used to drive the workload, in a possible range of [1,500]
      ===== DaCapo 0.1.0-SNAPSHOT actors starting =====
          ia32_cmpxchg8b          EDX(I), EAX(I), <0+1830687208>DW AF CF OF PF SF ZF <-- 
      ECX(I), EBX(I)
      Thread #7
      -- Stack --
      (0x68dc52e8 7729)   at [0x68dc52e8, 0x6506cf29] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2287
      (0x68dc5334 7510)   at [0x68dc5334, 0x6419a7fa] Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/String;)V at line 642
      (0x68dc536c 20154)   at [0x68dc536c, 0x64229a6b] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/String;)V at line 625
         at [0x68dc536c, 0x64229a6b] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;)V at line 615
         at [0x68dc536c, 0x64229a6b] Lorg/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerOpt; doCMPXCHG8B(Lorg/jikesrvm/compilers/opt/ir/Instruction;)V at line 12797
      (0x68dc53bc 19876)   at [0x68dc53bc, 0x6422a78e] Lorg/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerOpt; doInst(Lorg/jikesrvm/compilers/opt/ir/Instruction;)V at line 17611
      (0x68dc5410 6143)   at [0x68dc5410, 0x64a3acb4] Lorg/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerBase; generateCode()I at line 1170
      (0x68dc5470 11040)   at [0x68dc5470, 0x642f7731] Lorg/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerOpt; generateCode()I at line 23
         at [0x68dc5470, 0x642f7731] Lorg/jikesrvm/compilers/opt/mir2mc/AssemblerDriver; perform(Lorg/jikesrvm/compilers/opt/ir/IR;)V at line 64
      (0x68dc54c4 206)   at [0x68dc54c4, 0x643211e8] Lorg/jikesrvm/compilers/opt/driver/CompilerPhase; performPhase(Lorg/jikesrvm/compilers/opt/ir/IR;)V at line 209
      (0x68dc5514 14923)   at [0x68dc5514, 0x642f6d21] Lorg/jikesrvm/compilers/opt/driver/OptimizationPlanAtomicElement; perform(Lorg/jikesrvm/compilers/opt/ir/IR;)V at line 74
      (0x68dc5568 8081)   at [0x68dc5568, 0x6425a9e7] Lorg/jikesrvm/compilers/opt/driver/OptimizationPlanCompositeElement; perform(Lorg/jikesrvm/compilers/opt/ir/IR;)V at line 129
      (0x68dc55b4 21867)   at [0x68dc55b4, 0x64b47d84] Lorg/jikesrvm/compilers/opt/driver/CompilationPlan; execute()Lorg/jikesrvm/compilers/opt/ir/IR; at line 127
      (0x68dc55dc 17860)   at [0x68dc55dc, 0x64abacef] Lorg/jikesrvm/compilers/opt/driver/OptimizingCompiler; compile(Lorg/jikesrvm/compilers/opt/driver/CompilationPlan;)Lorg/jikesrvm/compilers/common/CompiledMethod; at line 175
      (0x68dc5628 19855)   at [0x68dc5628, 0x64ab9ee1] Lorg/jikesrvm/compilers/common/RuntimeCompiler; optCompile(Lorg/jikesrvm/classloader/NormalMethod;Lorg/jikesrvm/compilers/opt/driver/CompilationPlan;)Lorg/jikesrvm/compilers/common/CompiledMethod; at line 369
      (0x68dc5684 19858)   at [0x68dc5684, 0x64aba68c] Lorg/jikesrvm/compilers/common/RuntimeCompiler; optCompileWithFallBackInternal(Lorg/jikesrvm/classloader/NormalMethod;Lorg/jikesrvm/compilers/opt/driver/CompilationPlan;)Lorg/jikesrvm/compilers/common/CompiledMethod; at line 466
      (0x68dc56ac 19857)   at [0x68dc56ac, 0x64ab75ca] Lorg/jikesrvm/compilers/common/RuntimeCompiler; optCompileWithFallBack(Lorg/jikesrvm/classloader/NormalMethod;Lorg/jikesrvm/compilers/opt/driver/CompilationPlan;)Lorg/jikesrvm/compilers/common/CompiledMethod; at line 444
      (0x68dc5714 19865)   at [0x68dc5714, 0x6401f80a] Lorg/jikesrvm/compilers/common/RuntimeCompiler; compile(Lorg/jikesrvm/classloader/NormalMethod;)Lorg/jikesrvm/compilers/common/CompiledMethod; at line 690
      (0x68dc5728 18410)   at [0x68dc5728, 0x6401fa54] Lorg/jikesrvm/classloader/NormalMethod; genCode()Lorg/jikesrvm/compilers/common/CompiledMethod; at line 183
      (0x68dc5774 1323)   at [0x68dc5774, 0x64f507c4] Lorg/jikesrvm/classloader/RVMMethod; compile()V at line 635
      (0x68dc57a0 3117)   at [0x68dc57a0, 0x6504d356] Lorg/jikesrvm/runtime/DynamicLinker$DL_Helper; compileMethod(Lorg/jikesrvm/runtime/DynamicLink;Lorg/jikesrvm/classloader/RVMMethod;)V at line 156
      (0x68dc57f0 673)   at [0x68dc57f0, 0x68b6167d] Lorg/jikesrvm/runtime/DynamicLinker; lazyMethodInvoker()V at line 48
      (0x68dc5858 25682)   at [0x68dc5858, 0x689ac7c9] Ljava/util/concurrent/ScheduledThreadPoolExecutor; schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; at line 499
      (0x68dc588c 25681)   at [0x68dc588c, 0x68aaa80f] Ljava/util/concurrent/Executors$DelegatedScheduledExecutorService; schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; at line 639
      (0x68dc58fc 25680)   at [0x68dc58fc, 0x68b582c3] Lakka/actor/Scheduler$; scheduleOnce(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; at line 105
      (0x68dc594c 25649)   at [0x68dc594c, 0x689ac6bd] Lakka/dispatch/MessageDispatcher$class; unregister(Lakka/dispatch/MessageDispatcher;Lakka/actor/ActorRef;)Ljava/lang/Object; at line 90
      (0x68dc596c 25648)   at [0x68dc596c, 0x68a9f496] Lakka/dispatch/ExecutorBasedEventDrivenDispatcher; unregister(Lakka/actor/ActorRef;)Ljava/lang/Object; at line 67
         at [0x68dc596c, 0x68a9f496] Lakka/dispatch/MessageDispatcher$$anonfun$detach$1; apply()Ljava/lang/Object; at line 64
      (0x68dc5994 25361)   at [0x68dc5994, 0x68a8fa4a] Lakka/util/ReentrantGuard; withGuard(Lscala/Function0;)Ljava/lang/Object; at line 19
      (0x68dc59d4 25645)   at [0x68dc59d4, 0x68996d4b] Lakka/dispatch/MessageDispatcher$class; detach(Lakka/dispatch/MessageDispatcher;Lakka/actor/ActorRef;)V at line 63
         at [0x68dc59d4, 0x68996d4b] Lakka/dispatch/ExecutorBasedEventDrivenDispatcher; detach(Lakka/actor/ActorRef;)V at line 67
         at [0x68dc59d4, 0x68996d4b] Lakka/actor/LocalActorRef$$anonfun$stop$1; apply$mcV$sp()V at line 662
      (0x68dc59f0 25644)   at [0x68dc59f0, 0x68a9f496] Lakka/actor/LocalActorRef$$anonfun$stop$1; apply()V at line 659
         at [0x68dc59f0, 0x68a9f496] Lakka/actor/LocalActorRef$$anonfun$stop$1; apply()Ljava/lang/Object; at line 659
      (0x68dc5a18 25361)   at [0x68dc5a18, 0x689ac617] Lakka/util/ReentrantGuard; withGuard(Lscala/Function0;)Ljava/lang/Object; at line 19
      (0x68dc5a44 25641)   at [0x68dc5a44, 0x689ac537] Lakka/actor/LocalActorRef; stop()V at line 658
      (0x68dc5a60 25640)   at [0x68dc5a60, 0x6889712b] Lorg/samples/trading/akka/AkkaPerformanceTest$$anonfun$runScenario$3; apply(Lakka/actor/ActorRef;)V at line 61
         at [0x68dc5a60, 0x6889712b] Lorg/samples/trading/akka/AkkaPerformanceTest$$anonfun$runScenario$3; apply(Ljava/lang/Object;)Ljava/lang/Object; at line 61
      (0x68dc5a88 22699)   at [0x68dc5a88, 0x68aa8823] Lscala/collection/LinearSeqOptimized$class; foreach(Lscala/collection/LinearSeqOptimized;Lscala/Function1;)V at line 61
      (0x68dc5b14 25532)   at [0x68dc5b14, 0x68873d9b] Lscala/collection/immutable/List; foreach(Lscala/Function1;)V at line 45
         at [0x68dc5b14, 0x68873d9b] Lorg/samples/trading/akka/AkkaPerformanceTest; runScenario(Ljava/lang/String;Lscala/collection/immutable/List;III)V at line 61
      (0x68dc5b78 23585)   at [0x68dc5b78, 0x688b95c2] Lorg/samples/trading/common/BenchmarkScenarios$class; complexScenario(Lorg/samples/trading/common/BenchmarkScenarios;I)V at line 42
      (0x68dc5b90 25526)   at [0x68dc5b90, 0x6890a66c] Lorg/samples/trading/akka/AkkaPerformanceTest; complexScenario(I)V at line 17
      (0x68dc5bb8 23583)   at [0x68dc5bb8, 0x6881a2e9] Lorg/jikesrvm/classloader/ReflectionBase$$Reflect40207; invokeInternal(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
      (0x68dc5bf0 22277)   at [0x68dc5bf0, 0x64a67317] Lorg/jikesrvm/runtime/ReflectionBase; invoke(Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 164
      (0x68dc5c40 22137)   at [0x68dc5c40, 0x64a67981] Lorg/jikesrvm/runtime/Reflection; invoke(Lorg/jikesrvm/classloader/RVMMethod;Lorg/jikesrvm/runtime/ReflectionBase;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 92
         at [0x68dc5c40, 0x64a67981] Ljava/lang/reflect/VMCommonLibrarySupport; invokeVirtual(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/reflect/Method;Lorg/jikesrvm/classloader/RVMClass;Lorg/jikesrvm/runtime/ReflectionBase;)Ljava/lang/Object; at line 234
      (0x68dc5c88 22135)   at [0x68dc5c88, 0x6881cd0a] Ljava/lang/reflect/VMCommonLibrarySupport; invoke(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/reflect/Method;Lorg/jikesrvm/classloader/RVMClass;Lorg/jikesrvm/runtime/ReflectionBase;)Ljava/lang/Object; at line 175
      (0x68dc5ce8 22633)   at [0x68dc5ce8, 0x6884f502] Ljava/lang/reflect/VMMethod; invoke(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; at line 89
         at [0x68dc5ce8, 0x6884f502] Ljava/lang/reflect/Method; invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 326
         at [0x68dc5ce8, 0x6884f502] Lorg/scalabench/benchmarks/actors/Actors; runJUnitTest(Ljava/lang/String;Ljava/lang/Object;)V at line 115
      (0x68dc5d4c 22502)   at [0x68dc5d4c, 0x6885d490] Lorg/scalabench/benchmarks/actors/Actors; iterate(Ljava/lang/String;)V at line 109
         at [0x68dc5d4c, 0x6885d490] Lorg/dacapo/harness/Benchmark; run(Lorg/dacapo/harness/Callback;Ljava/lang/String;)Z at line 166
      (0x68dc5dac 22478)   at [0x68dc5dac, 0x6a0049e9] Lorg/dacapo/harness/TestHarness; runBenchmark(Ljava/io/File;Ljava/lang/String;Lorg/dacapo/harness/TestHarness;)V at line 218
      (0x68dc5e70 22363)   at [0x68dc5e70, 0x6884615e] Lorg/dacapo/harness/TestHarness; main([Ljava/lang/String;)V at line 171
      (0x68dc5e8c 22339)   at [0x68dc5e8c, 0x64ee76c6] LHarness; main([Ljava/lang/String;)V at line 17
      (0x68dc5ea4 -1)   at [0x68dc5ea4, 0x64b499ac] <invisible method>
      (0x68dc5f30 17819)   at [0x68dc5f30, 0x649aa044] Lorg/jikesrvm/runtime/Reflection; outOfLineInvoke(Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 212
      (0x68dc5f90 19070)   at [0x68dc5f90, 0x64c09aa3] Lorg/jikesrvm/runtime/Reflection; invoke(Lorg/jikesrvm/classloader/RVMMethod;Lorg/jikesrvm/runtime/ReflectionBase;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 94
         at [0x68dc5f90, 0x64c09aa3] Lorg/jikesrvm/scheduler/MainThread; run()V at line 203
      (0x68dc5fc0 21359)   at [0x68dc5fc0, 0x650484e8] Lorg/jikesrvm/scheduler/RVMThread; run()V at line 2736
      (0x68dc5ff8 21548)   at [0x68dc5ff8, 0x0804f280] Lorg/jikesrvm/scheduler/RVMThread; startoff()V at line 2791
      

        Attachments

          Activity

            People

            • Assignee:
              ebrangs Erik Brangs
              Reporter:
              ebrangs Erik Brangs
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: