PPC 64 regressions and Intel stress regressions since the introduction of read barriers

Description

Read barriers are a significant contribution to the RVM, unfortunately we have started failing a few regressions since their introduction (r13883):

PPC 64 regressions failing all sanity tests with the following stack trace:
http://jikesrvm.anu.edu.au/cattrack/results/excalibur.watson.ibm.com/core-ppc64/1910/regression_report

vm internal error at:

– Stack –
at [0x000000003192f5e8] Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/StringV at line 544
at [0x000000003192f670] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/StringV at line 527
at [0x000000003192f670] Lorg/jikesrvm/VM; _assert(Z)V at line 505
at [0x000000003192f670] Lorg/jikesrvm/objectmodel/VM_TIB; lazyMethodInvokerTrampolineWords()I at line 49
at [0x000000003192f670] Lorg/jikesrvm/objectmodel/VM_TIB; computeSize(I)I at line 59
at [0x000000003192f690] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; newTIB(I)Lorg/jikesrvm/objectmodel/VM_TIB; at line 961
at [0x000000003192f690] Lorg/jikesrvm/classloader/VM_Type; <init>(Lorg/jikesrvm/classloader/VM_TypeReference;I[Lorg/jikesrvm/classloader/VM_AnnotationV at line 247
at [0x000000003192f6f0] Lorg/jikesrvm/classloader/VM_Array; <init>(Lorg/jikesrvm/classloader/VM_TypeReference;Lorg/jikesrvm/classloader/VM_TypeV at line 383
at [0x000000003192f768] Lorg/jikesrvm/classloader/VM_TypeReference; resolveInternal()Lorg/jikesrvm/classloader/VM_Type; at line 796
at [0x000000003192f7f8] Lorg/jikesrvm/classloader/VM_TypeReference; resolve()Lorg/jikesrvm/classloader/VM_Type; at line 749
at [0x000000003192f828] Lorg/jikesrvm/runtime/VM_Runtime; unresolvedNewArray(III)Ljava/lang/Object; at line 404
at [0x000000003192f860] Lorg/jikesrvm/jni/ppc/VM_JNICompiler; genPowerOpenParameterPassingCode(Lorg/jikesrvm/compilers/common/assembler/ppc/VM_Assembler;[Lorg/jikesrvm/classloader/VM_TypeReference;IIIIII)V at line 932
at [0x000000003192f8f8] Lorg/jikesrvm/jni/ppc/VM_JNICompiler; generateParameterPassingCode(Lorg/jikesrvm/compilers/common/assembler/ppc/VM_Assembler;[Lorg/jikesrvm/classloader/VM_TypeReference;IIIIII)V at line 556
at [0x000000003192f8f8] Lorg/jikesrvm/jni/ppc/VM_JNICompiler; storeParameters(Lorg/jikesrvm/compilers/common/assembler/ppc/VM_Assembler;ILorg/jikesrvm/classloader/VM_Method;Lorg/jikesrvm/classloader/VM_ClassV at line 491
at [0x000000003192f938] Lorg/jikesrvm/jni/ppc/VM_JNICompiler; compile(Lorg/jikesrvm/classloader/VM_NativeMethodLorg/jikesrvm/compilers/common/VM_CompiledMethod; at line 246
at [0x000000003192f9b0] Lorg/jikesrvm/compilers/common/VM_RuntimeCompiler; compile(Lorg/jikesrvm/classloader/VM_NativeMethodLorg/jikesrvm/compilers/common/VM_CompiledMethod; at line 772
at [0x000000003192fa40] Lorg/jikesrvm/classloader/VM_NativeMethod; genCode()Lorg/jikesrvm/compilers/common/VM_CompiledMethod; at line 87
at [0x000000003192fa70] Lorg/jikesrvm/classloader/VM_Method; compile()V at line 615
at [0x000000003192faf8] Lorg/jikesrvm/runtime/VM_DynamicLinker$DL_Helper; compileMethod(Lorg/jikesrvm/runtime/VM_DynamicLink;Lorg/jikesrvm/classloader/VM_MethodV at line 149
at [0x000000003192fb30] Lorg/jikesrvm/runtime/VM_DynamicLinker; lazyMethodInvoker()V at line 45
at [0x000000003192fd50] Lorg/jikesrvm/runtime/VM_DynamicLibrary; callOnLoad()V at line 103
at [0x000000003192fd50] Lorg/jikesrvm/runtime/VM_DynamicLibrary; <init>(Ljava/lang/StringV at line 85
at [0x000000003192fdd8] Lorg/jikesrvm/runtime/VM_DynamicLibrary; load(Ljava/lang/StringI at line 181
at [0x000000003192fe38] Ljava/lang/VMRuntime; nativeLoad(Ljava/lang/String;Ljava/lang/ClassLoaderI at line 105
at [0x000000003192fe38] Ljava/lang/Runtime; loadLib(Ljava/lang/String;Ljava/lang/ClassLoaderI at line 698
at [0x000000003192fe38] Ljava/lang/Runtime; loadLibrary(Ljava/lang/String;Ljava/lang/ClassLoaderV at line 760
at [0x000000003192fec8] Ljava/lang/System; loadLibrary(Ljava/lang/StringV at line 662
at [0x000000003192fec8] Lorg/jikesrvm/VM; finishBooting()V at line 314
at [0x000000003192ff20] Lorg/jikesrvm/VM; boot()V at line 151

Intel stress tests have gone from a 4% failure rate to a 76% failure rate with most tests failing with the following stack trace:
http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32b.anu.edu.au/stress/1905/regression_report

JikesRVM: internal error: recursive use of hardware exception registers (exiting)

– Stack –
at [0x6812e9f8] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 683
at [0x6812ea0c] <hardware trap>
at [0x6813690c] Lorg/jikesrvm/scheduler/VM_Thread; <init>([BLjava/lang/Thread;Ljava/lang/String;ZZI)V
at [0x6813695c] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; <init>([BLjava/lang/Thread;Ljava/lang/String;ZZI)V at line 125
at [0x6813695c] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; <init>(Ljava/lang/StringV at line 90
at [0x6813695c] Lorg/jikesrvm/scheduler/VM_Scheduler$ThreadModel; <init>(Ljava/lang/StringV at line 54
at [0x6813695c] Lorg/jikesrvm/adaptive/controller/VM_ControllerThread; <init>(Ljava/lang/ObjectV at line 52
at [0x6813695c] Lorg/jikesrvm/adaptive/controller/VM_Controller; createControllerThread()V at line 252
at [0x68136988] Lorg/jikesrvm/adaptive/controller/VM_Controller; boot()V at line 177
at [0x681369d4] Lorg/jikesrvm/VM; finishBooting()V at line 368
at [0x681369e4] Lorg/jikesrvm/VM; boot()V at line 151

Environment

None

Assignee

Daniel Frampton

Reporter

Ian Rogers

Labels

None

Fix versions

Priority

Highest
Configure