Issue Details (XML | Word | Printable)

Key: RVM-347
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Daniel Frampton
Reporter: Ian Rogers
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
RVM

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

Created: 21/Nov/07 02:30 AM   Updated: 13/Mar/08 06:12 AM
Component/s: Instruction Architecture: Intel, Instruction Architecture: PowerPC, MMTk
Affects Version/s: None
Fix Version/s: 2.9.3

Time Tracking:
Not Specified


 Description  « Hide
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/String;)V at line 544
at [0x000000003192f670] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/String;)V 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_Annotation;)V at line 247
at [0x000000003192f6f0] Lorg/jikesrvm/classloader/VM_Array; <init>(Lorg/jikesrvm/classloader/VM_TypeReference;Lorg/jikesrvm/classloader/VM_Type;)V 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_Class;)V at line 491
at [0x000000003192f938] Lorg/jikesrvm/jni/ppc/VM_JNICompiler; compile(Lorg/jikesrvm/classloader/VM_NativeMethod;)Lorg/jikesrvm/compilers/common/VM_CompiledMethod; at line 246
at [0x000000003192f9b0] Lorg/jikesrvm/compilers/common/VM_RuntimeCompiler; compile(Lorg/jikesrvm/classloader/VM_NativeMethod;)Lorg/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_Method;)V 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/String;)V at line 85
at [0x000000003192fdd8] Lorg/jikesrvm/runtime/VM_DynamicLibrary; load(Ljava/lang/String;)I at line 181
at [0x000000003192fe38] Ljava/lang/VMRuntime; nativeLoad(Ljava/lang/String;Ljava/lang/ClassLoader;)I at line 105
at [0x000000003192fe38] Ljava/lang/Runtime; loadLib(Ljava/lang/String;Ljava/lang/ClassLoader;)I at line 698
at [0x000000003192fe38] Ljava/lang/Runtime; loadLibrary(Ljava/lang/String;Ljava/lang/ClassLoader;)V at line 760
at [0x000000003192fec8] Ljava/lang/System; loadLibrary(Ljava/lang/String;)V 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/String;)V at line 90
at [0x6813695c] Lorg/jikesrvm/scheduler/VM_Scheduler$ThreadModel; <init>(Ljava/lang/String;)V at line 54
at [0x6813695c] Lorg/jikesrvm/adaptive/controller/VM_ControllerThread; <init>(Ljava/lang/Object;)V 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



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Ian Rogers added a comment - 22/Nov/07 06:13 AM
PPC64 is now consistently dying with a illegal instruction (both opt and baseline builds):

mem=000000003092d290
fp=0000000040f61d60
pr=0000000040000040
trap/exception: type=Illegal instruction
ip=0000000041422100
instr=0x00621e80
exn_handler=00000000348193c8
lr=0000000034497da8
pthread_self=0000000000000102
JikesRVM: internal error trap

http://jikesrvm.anu.edu.au/cattrack/results/excalibur.watson.ibm.com/core-ppc64/1923/prototype/default/basic/ImageSizes/default/Output.txt


Daniel Frampton added a comment - 23/Nov/07 06:08 AM
PPC64 seems healthier now..

I can't work out how to reproduce the stress failures. They dont seem to happen when I run the stress test-run myself... But they seem totally repeatable on the regression runs. I will keep looking into it.


Daniel Frampton added a comment - 13/Mar/08 06:12 AM
This problem was resolved the day after my previous comment (24 Nov).

Apologies for not updating the JIRA.