RVM
  1. RVM
  2. RVM-48

SPECjvm98 failing on AIX/PPC

    Details

    • Number of attachments :
      0

      Description

      SPECjvm98 ran on 2.9.0 on PPC/AIX.

      It is failing now. Must be fixed before 2.9.1 release.

        Activity

        Ian Rogers made changes -
        Field Original Value New Value
        Fix Version/s 2.9.1 [ 13529 ]
        Peter Donald made changes -
        Component/s Instruction Architecture: PowerPC [ 12861 ]
        Component/s Operating System: AIX [ 12864 ]
        Peter Donald made changes -
        Fix Version/s 2.9.1 [ 13529 ]
        Fix Version/s 2.9.2 [ 13599 ]
        Hide
        David Grove added a comment -

        I checked half a dozen of the failing prototype test cases on ppc64-aix. They all had the appended error (this one is from _213_javac).

        Fatal error: ArrayIndexOutOfBoundsException within uninterruptible region.
        Died in GC:
        Exiting virtual machine due to uninterruptibility violation.

        – Stack –
        at [0x00000000400198c0] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2027
        at [0x00000000400198f0] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 710
        at [0x00000000400199b0] <hardware trap>
        at [0x00000000400199c8] Lorg/mmtk/utility/heap/Map; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 291
        at [0x0000000040019a10] Lorg/mmtk/policy/Space; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 359
        at [0x0000000040019a48] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/Address;)Z at line 324
        at [0x0000000040019ac0] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/ObjectReference;)Z at line 308
        at [0x0000000040019b10] Lorg/mmtk/plan/generational/marksweep/GenMSMatureTraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;)Lorg/vmmagic/unboxed/ObjectReference; at line 52
        at [0x0000000040019b60] Lorg/mmtk/plan/TraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;Z)Lorg/vmmagic/unboxed/ObjectReference; at line 293
        at [0x0000000040019bb8] Lorg/mmtk/plan/TraceLocal; processRootEdge(Lorg/vmmagic/unboxed/Address;)V at line 120
        at [0x0000000040019c28] Lorg/jikesrvm/mm/mmtk/ScanBootImage; processChunk(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/plan/TraceLocal;)V at line 140
        at [0x0000000040019d08] Lorg/jikesrvm/mm/mmtk/ScanBootImage; scanBootImage(Lorg/mmtk/plan/TraceLocal;)V at line 79
        at [0x0000000040019dc8] Lorg/jikesrvm/mm/mmtk/Scanning; computeBootImageRoots(Lorg/mmtk/plan/TraceLocal;)V at line 278
        at [0x0000000040019e08] Lorg/mmtk/plan/generational/GenCollector; collectionPhase(SZ)V at line 98
        at [0x0000000040019e68] Lorg/mmtk/plan/generational/marksweep/GenMSCollector; collectionPhase(SZ)V at line 143
        at [0x0000000040019ec8] Lorg/mmtk/plan/Phase; processPhaseStack(Z)Z at line 477
        at [0x0000000040019fd8] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)Z at line 390
        at [0x000000004001a020] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 39
        at [0x000000004001a050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; run()V at line 383
        at [0x000000004001a1e0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        Virtual machine state:

        – Processors –
        Processor 1 running thread4-daemon-collector-RUNNABLE
        system thread id 1
        transferQueue:7-main-RUNNABLE
        readyQueue:
        ioQueue:
        processWaitQueue:
        idleQueue:2-daemon-idle-RUNNABLE
        status: IN_JAVA
        timeSliceExpired: 0
        Processor 2 (me) running thread5-daemon-collector-RUNNABLE
        system thread id 258
        transferQueue:
        readyQueue:
        ioQueue:
        processWaitQueue:
        idleQueue:3-daemon-idle-RUNNABLE
        status: IN_JAVA
        timeSliceExpired: 0

        – System Queues –
        wakeupQueue:
        debuggerQueue: 8-daemon-RUNNABLE
        collectorQueue:
        finalizerQueue: 6-daemon-BLOCKED

        – Threads –
        2-daemon-idle-RUNNABLE
        3-daemon-idle-RUNNABLE
        4-daemon-collector-RUNNABLE
        5-daemon-collector-RUNNABLE
        6-daemon-BLOCKED
        7-main-RUNNABLE
        8-daemon-RUNNABLE

        – Locks available –
        processor 1: 0 locks allocated, 0 locks freed, 0 free looks, 0 unallocated slots
        processor 2: 0 locks allocated, 0 locks freed, 0 free looks, 0 unallocated slots

        – Locks in use –

        Dumping stack of active thread

        – Stack –
        at [0x0000000040019838] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; dumpVirtualMachineInternal()V at line 475
        at [0x00000000400198a0] Lorg/jikesrvm/scheduler/VM_Scheduler; dumpVirtualMachine()V at line 237
        at [0x00000000400198c0] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2029
        at [0x00000000400198f0] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 710
        at [0x00000000400199b0] <hardware trap>
        at [0x00000000400199c8] Lorg/mmtk/utility/heap/Map; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 291
        at [0x0000000040019a10] Lorg/mmtk/policy/Space; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 359
        at [0x0000000040019a48] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/Address;)Z at line 324
        at [0x0000000040019ac0] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/ObjectReference;)Z at line 308
        at [0x0000000040019b10] Lorg/mmtk/plan/generational/marksweep/GenMSMatureTraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;)Lorg/vmmagic/unboxed/ObjectReference; at line 52
        at [0x0000000040019b60] Lorg/mmtk/plan/TraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;Z)Lorg/vmmagic/unboxed/ObjectReference; at line 293
        at [0x0000000040019bb8] Lorg/mmtk/plan/TraceLocal; processRootEdge(Lorg/vmmagic/unboxed/Address;)V at line 120
        at [0x0000000040019c28] Lorg/jikesrvm/mm/mmtk/ScanBootImage; processChunk(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/plan/TraceLocal;)V at line 140
        at [0x0000000040019d08] Lorg/jikesrvm/mm/mmtk/ScanBootImage; scanBootImage(Lorg/mmtk/plan/TraceLocal;)V at line 79
        at [0x0000000040019dc8] Lorg/jikesrvm/mm/mmtk/Scanning; computeBootImageRoots(Lorg/mmtk/plan/TraceLocal;)V at line 278
        at [0x0000000040019e08] Lorg/mmtk/plan/generational/GenCollector; collectionPhase(SZ)V at line 98
        at [0x0000000040019e68] Lorg/mmtk/plan/generational/marksweep/GenMSCollector; collectionPhase(SZ)V at line 143
        at [0x0000000040019ec8] Lorg/mmtk/plan/Phase; processPhaseStack(Z)Z at line 477
        at [0x0000000040019fd8] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)Z at line 390
        at [0x000000004001a020] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 39
        at [0x000000004001a050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; run()V at line 383
        at [0x000000004001a1e0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        Attempting to dump the stack of all other live threads
        This is somewhat risky since if the thread is running we're going to be quite confused
        2-daemon-idle-RUNNABLE
        – Stack –
        at [0x000000004084aea8] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443
        at [0x000000004084aef0] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield(Lorg/jikesrvm/scheduler/greenthreads/VM_AbstractThreadQueue;)V at line 461
        at [0x000000004084af38] Lorg/jikesrvm/scheduler/greenthreads/VM_IdleThread; run()V at line 87
        at [0x000000004084afd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        3-daemon-idle-RUNNABLE
        – Stack –
        at [0x0000000040892cf8] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443
        at [0x0000000040892d40] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; timerTickYield(I)V at line 371
        at [0x0000000040892d88] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yieldpoint(I)V at line 349
        at [0x0000000040892e08] Lorg/jikesrvm/scheduler/VM_Thread; yieldpointFromBackedge()V at line 808
        at [0x0000000040892f38] Lorg/jikesrvm/scheduler/greenthreads/VM_IdleThread; run()V at line 101
        at [0x0000000040892fd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        4-daemon-collector-RUNNABLE
        – Stack –
        at [0x000000004000edc0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        6-daemon-BLOCKED
        – Stack –
        at [0x00000000408dae68] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443
        at [0x00000000408daeb0] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield(Lorg/jikesrvm/scheduler/greenthreads/VM_AbstractThreadQueue;Lorg/jikesrvm/scheduler/VM_ProcessorLock;)V at line 398
        at [0x00000000408daf10] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; suspendFinalizerThreadInternal()V at line 633
        at [0x00000000408daf50] Lorg/jikesrvm/scheduler/VM_Scheduler; suspendFinalizerThread()V at line 417
        at [0x00000000408daf70] Lorg/jikesrvm/scheduler/VM_FinalizerThread; run()V at line 54
        at [0x00000000408dafd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        7-main-RUNNABLE
        – Stack –
        at [0x0000000040985f40] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443
        at [0x0000000040985f88] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield()V at line 382
        at [0x0000000040985fc0] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; yieldInternal()V at line 607
        at [0x0000000040985fe8] Lorg/jikesrvm/scheduler/VM_Scheduler; yield()V at line 270
        at [0x0000000040986008] Lorg/jikesrvm/memorymanagers/mminterface/VM_Handshake; requestAndAwaitCompletion(I)V at line 73
        at [0x0000000040986050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; collect(Lorg/jikesrvm/memorymanagers/mminterface/VM_Handshake;I)V at line 270
        at [0x0000000040986098] Lorg/jikesrvm/mm/mmtk/Collection; triggerCollectionStatic(I)V at line 127
        at [0x00000000409860d0] Lorg/jikesrvm/mm/mmtk/Collection; triggerCollection(I)V at line 79
        at [0x0000000040986110] Lorg/mmtk/plan/Plan; poll(ZLorg/mmtk/policy/Space;)Z at line 840
        at [0x0000000040986170] Lorg/mmtk/policy/Space; acquire(I)Lorg/vmmagic/unboxed/Address; at line 394
        at [0x00000000409861e0] Lorg/mmtk/utility/alloc/BumpPointer; allocSlowOnce(III)Lorg/vmmagic/unboxed/Address; at line 258
        at [0x0000000040986280] Lorg/mmtk/utility/alloc/Allocator; allocSlowInline(III)Lorg/vmmagic/unboxed/Address; at line 229
        at [0x0000000040986338] Lorg/mmtk/utility/alloc/BumpPointer; allocSlow(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;II)Lorg/vmmagic/unboxed/Address; at line 172
        at [0x00000000409863e0] Lorg/mmtk/utility/alloc/BumpPointer; alloc(III)Lorg/vmmagic/unboxed/Address; at line 146
        at [0x0000000040986480] Lorg/mmtk/plan/generational/GenMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 88
        at [0x0000000040986528] Lorg/mmtk/plan/generational/marksweep/GenMSMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 89
        at [0x00000000409865d0] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateSpace(Lorg/jikesrvm/memorymanagers/mminterface/Selected$Mutator;IIIII)Lorg/vmmagic/unboxed/Address; at line 664
        at [0x0000000040986688] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateArrayInternal(II[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 639
        at [0x0000000040986770] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 605
        at [0x0000000040986860] Lorg/jikesrvm/runtime/VM_Runtime; resolvedNewArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 463
        at [0x0000000040986938] Ljava/lang/StringBuffer; <init>(Ljava/lang/String;)V at line 150
        at [0x0000000040986998] Lspec/benchmarks/_213_javac/Type; tClass(Lspec/benchmarks/_213_javac/Identifier;)Lspec/benchmarks/_213_javac/Type; at line 167
        at [0x0000000040986a10] Lspec/benchmarks/_213_javac/ClassDeclaration; getType()Lspec/benchmarks/_213_javac/Type; at line 76
        at [0x0000000040986a40] Lspec/benchmarks/_213_javac/Environment; isMoreSpecific(Lspec/benchmarks/_213_javac/FieldDefinition;Lspec/benchmarks/_213_javac/FieldDefinition;)Z at line 179
        at [0x0000000040986ad0] Lspec/benchmarks/_213_javac/ClassDefinition; matchMethod(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/ClassDefinition;Lspec/benchmarks/_213_javac/Identifier;[Lspec/benchmarks/_213_javac/Type;Lspec/benchmarks/_213_javac/FieldDefinition;Z)Lspec/benchmarks/_213_javac/FieldDefinition; at line 390
        at [0x0000000040986be0] Lspec/benchmarks/_213_javac/ClassDefinition; matchMethod(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/ClassDefinition;Lspec/benchmarks/_213_javac/Identifier;[Lspec/benchmarks/_213_javac/Type;)Lspec/benchmarks/_213_javac/FieldDefinition; at line 432
        at [0x0000000040986c90] Lspec/benchmarks/_213_javac/Expression; codeAppend(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;Lspec/benchmarks/_213_javac/ClassDeclaration;)V at line 263
        at [0x0000000040986d50] Lspec/benchmarks/_213_javac/AddExpression; codeAppend(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;Lspec/benchmarks/_213_javac/ClassDeclaration;)V at line 105
        at [0x0000000040986de0] Lspec/benchmarks/_213_javac/AddExpression; codeValue(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 120
        at [0x0000000040986e90] Lspec/benchmarks/_213_javac/NewInstanceExpression; codeValue(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 205
        at [0x0000000040986f18] Lspec/benchmarks/_213_javac/ConvertExpression; codeValue(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 117
        at [0x0000000040986fa0] Lspec/benchmarks/_213_javac/ThrowStatement; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 94
        at [0x0000000040987018] Lspec/benchmarks/_213_javac/IfStatement; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 127
        at [0x00000000409870d0] Lspec/benchmarks/_213_javac/CompoundStatement; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 135
        at [0x0000000040987168] Lspec/benchmarks/_213_javac/SourceField; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Assembler;)V at line 403
        at [0x0000000040987210] Lspec/benchmarks/_213_javac/SourceField; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Assembler;)V at line 365
        at [0x00000000409872b8] Lspec/benchmarks/_213_javac/SourceClass; compileClass(Lspec/benchmarks/_213_javac/Environment;Ljava/io/OutputStream;)V at line 565
        at [0x0000000040987470] Lspec/benchmarks/_213_javac/SourceClass; compile(Lspec/benchmarks/_213_javac/Environment;Ljava/io/OutputStream;)V at line 528
        at [0x0000000040987500] Lspec/benchmarks/_213_javac/Javac; compile([Ljava/lang/String;)Z at line 198
        at [0x0000000040987668] Lspec/benchmarks/_213_javac/Javac; inst_main([Ljava/lang/String;)J at line 305
        at [0x0000000040987718] Lspec/benchmarks/_213_javac/Main; runBenchmark([Ljava/lang/String;)J at line 45
        at [0x0000000040987798] Lspec/benchmarks/_213_javac/Main; harnessMain([Ljava/lang/String;)J at line 57
        at [0x00000000409877e0] Lspec/harness/ProgramRunner; runOnce(Ljava/lang/Object;IJILjava/util/Properties;)Lspec/harness/BenchmarkTime; at line 382
        at [0x00000000409878d0] Lspec/harness/ProgramRunner; runBenchmark2()Ljava/util/Properties; at line 305
        at [0x0000000040987a18] Lspec/harness/ProgramRunner; runBenchmark()V at line 238
        at [0x0000000040987a78] Lspec/harness/ProgramRunner; run()V at line 206
        at [0x0000000040987ab0] Lspec/harness/RunProgram; run(Ljava/lang/String;ZLjava/util/Properties;Lspec/harness/BenchmarkDone;)V at line 60
        at [0x0000000040987c28] LSpecApplication; runBenchmark(Ljava/lang/String;Z)V at line 239
        at [0x0000000040987c88] LSpecApplication; main([Ljava/lang/String;)V at line 155
        at [0x0000000040987d38] <invisible method>
        at [0x0000000040987d50] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 132
        at [0x0000000040987eb8] Lorg/jikesrvm/scheduler/VM_MainThread; run()V at line 193
        at [0x0000000040987f60] Lorg/jikesrvm/scheduler/VM_Thread; run()V at line 581
        at [0x0000000040987fd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        8-daemon-RUNNABLE
        – Stack –
        JikesRVM: internal error: recursive use of hardware exception registers (exiting)
        VM_Scheduler.dumpStack(): in a recursive call, 2 deep.

        – Stack –
        at [0x00000000400197f0] Lorg/jikesrvm/scheduler/VM_Scheduler; dumpStack(Lorg/vmmagic/unboxed/Address;)V at line 645
        at [0x0000000040019838] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; dumpVirtualMachineInternal()V at line 485
        at [0x00000000400198a0] Lorg/jikesrvm/scheduler/VM_Scheduler; dumpVirtualMachine()V at line 237
        at [0x00000000400198c0] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2029
        at [0x00000000400198f0] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 710
        at [0x00000000400199b0] <hardware trap>
        at [0x00000000400199c8] Lorg/mmtk/utility/heap/Map; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 291
        at [0x0000000040019a10] Lorg/mmtk/policy/Space; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 359
        at [0x0000000040019a48] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/Address;)Z at line 324
        at [0x0000000040019ac0] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/ObjectReference;)Z at line 308
        at [0x0000000040019b10] Lorg/mmtk/plan/generational/marksweep/GenMSMatureTraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;)Lorg/vmmagic/unboxed/ObjectReference; at line 52
        at [0x0000000040019b60] Lorg/mmtk/plan/TraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;Z)Lorg/vmmagic/unboxed/ObjectReference; at line 293
        at [0x0000000040019bb8] Lorg/mmtk/plan/TraceLocal; processRootEdge(Lorg/vmmagic/unboxed/Address;)V at line 120
        at [0x0000000040019c28] Lorg/jikesrvm/mm/mmtk/ScanBootImage; processChunk(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/plan/TraceLocal;)V at line 140
        at [0x0000000040019d08] Lorg/jikesrvm/mm/mmtk/ScanBootImage; scanBootImage(Lorg/mmtk/plan/TraceLocal;)V at line 79
        at [0x0000000040019dc8] Lorg/jikesrvm/mm/mmtk/Scanning; computeBootImageRoots(Lorg/mmtk/plan/TraceLocal;)V at line 278
        at [0x0000000040019e08] Lorg/mmtk/plan/generational/GenCollector; collectionPhase(SZ)V at line 98
        at [0x0000000040019e68] Lorg/mmtk/plan/generational/marksweep/GenMSCollector; collectionPhase(SZ)V at line 143
        at [0x0000000040019ec8] Lorg/mmtk/plan/Phase; processPhaseStack(Z)Z at line 477
        at [0x0000000040019fd8] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)Z at line 390
        at [0x000000004001a020] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 39
        at [0x000000004001a050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; run()V at line 383
        at [0x000000004001a1e0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606

        Show
        David Grove added a comment - I checked half a dozen of the failing prototype test cases on ppc64-aix. They all had the appended error (this one is from _213_javac). Fatal error: ArrayIndexOutOfBoundsException within uninterruptible region. Died in GC: Exiting virtual machine due to uninterruptibility violation. – Stack – at [0x00000000400198c0] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2027 at [0x00000000400198f0] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 710 at [0x00000000400199b0] <hardware trap> at [0x00000000400199c8] Lorg/mmtk/utility/heap/Map; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 291 at [0x0000000040019a10] Lorg/mmtk/policy/Space; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 359 at [0x0000000040019a48] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/Address;)Z at line 324 at [0x0000000040019ac0] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/ObjectReference;)Z at line 308 at [0x0000000040019b10] Lorg/mmtk/plan/generational/marksweep/GenMSMatureTraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;)Lorg/vmmagic/unboxed/ObjectReference; at line 52 at [0x0000000040019b60] Lorg/mmtk/plan/TraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;Z)Lorg/vmmagic/unboxed/ObjectReference; at line 293 at [0x0000000040019bb8] Lorg/mmtk/plan/TraceLocal; processRootEdge(Lorg/vmmagic/unboxed/Address;)V at line 120 at [0x0000000040019c28] Lorg/jikesrvm/mm/mmtk/ScanBootImage; processChunk(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/plan/TraceLocal;)V at line 140 at [0x0000000040019d08] Lorg/jikesrvm/mm/mmtk/ScanBootImage; scanBootImage(Lorg/mmtk/plan/TraceLocal;)V at line 79 at [0x0000000040019dc8] Lorg/jikesrvm/mm/mmtk/Scanning; computeBootImageRoots(Lorg/mmtk/plan/TraceLocal;)V at line 278 at [0x0000000040019e08] Lorg/mmtk/plan/generational/GenCollector; collectionPhase(SZ)V at line 98 at [0x0000000040019e68] Lorg/mmtk/plan/generational/marksweep/GenMSCollector; collectionPhase(SZ)V at line 143 at [0x0000000040019ec8] Lorg/mmtk/plan/Phase; processPhaseStack(Z)Z at line 477 at [0x0000000040019fd8] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)Z at line 390 at [0x000000004001a020] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 39 at [0x000000004001a050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; run()V at line 383 at [0x000000004001a1e0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 Virtual machine state: – Processors – Processor 1 running thread4-daemon-collector-RUNNABLE system thread id 1 transferQueue:7-main-RUNNABLE readyQueue: ioQueue: processWaitQueue: idleQueue:2-daemon-idle-RUNNABLE status: IN_JAVA timeSliceExpired: 0 Processor 2 (me) running thread5-daemon-collector-RUNNABLE system thread id 258 transferQueue: readyQueue: ioQueue: processWaitQueue: idleQueue:3-daemon-idle-RUNNABLE status: IN_JAVA timeSliceExpired: 0 – System Queues – wakeupQueue: debuggerQueue: 8-daemon-RUNNABLE collectorQueue: finalizerQueue: 6-daemon-BLOCKED – Threads – 2-daemon-idle-RUNNABLE 3-daemon-idle-RUNNABLE 4-daemon-collector-RUNNABLE 5-daemon-collector-RUNNABLE 6-daemon-BLOCKED 7-main-RUNNABLE 8-daemon-RUNNABLE – Locks available – processor 1: 0 locks allocated, 0 locks freed, 0 free looks, 0 unallocated slots processor 2: 0 locks allocated, 0 locks freed, 0 free looks, 0 unallocated slots – Locks in use – Dumping stack of active thread – Stack – at [0x0000000040019838] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; dumpVirtualMachineInternal()V at line 475 at [0x00000000400198a0] Lorg/jikesrvm/scheduler/VM_Scheduler; dumpVirtualMachine()V at line 237 at [0x00000000400198c0] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2029 at [0x00000000400198f0] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 710 at [0x00000000400199b0] <hardware trap> at [0x00000000400199c8] Lorg/mmtk/utility/heap/Map; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 291 at [0x0000000040019a10] Lorg/mmtk/policy/Space; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 359 at [0x0000000040019a48] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/Address;)Z at line 324 at [0x0000000040019ac0] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/ObjectReference;)Z at line 308 at [0x0000000040019b10] Lorg/mmtk/plan/generational/marksweep/GenMSMatureTraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;)Lorg/vmmagic/unboxed/ObjectReference; at line 52 at [0x0000000040019b60] Lorg/mmtk/plan/TraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;Z)Lorg/vmmagic/unboxed/ObjectReference; at line 293 at [0x0000000040019bb8] Lorg/mmtk/plan/TraceLocal; processRootEdge(Lorg/vmmagic/unboxed/Address;)V at line 120 at [0x0000000040019c28] Lorg/jikesrvm/mm/mmtk/ScanBootImage; processChunk(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/plan/TraceLocal;)V at line 140 at [0x0000000040019d08] Lorg/jikesrvm/mm/mmtk/ScanBootImage; scanBootImage(Lorg/mmtk/plan/TraceLocal;)V at line 79 at [0x0000000040019dc8] Lorg/jikesrvm/mm/mmtk/Scanning; computeBootImageRoots(Lorg/mmtk/plan/TraceLocal;)V at line 278 at [0x0000000040019e08] Lorg/mmtk/plan/generational/GenCollector; collectionPhase(SZ)V at line 98 at [0x0000000040019e68] Lorg/mmtk/plan/generational/marksweep/GenMSCollector; collectionPhase(SZ)V at line 143 at [0x0000000040019ec8] Lorg/mmtk/plan/Phase; processPhaseStack(Z)Z at line 477 at [0x0000000040019fd8] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)Z at line 390 at [0x000000004001a020] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 39 at [0x000000004001a050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; run()V at line 383 at [0x000000004001a1e0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 Attempting to dump the stack of all other live threads This is somewhat risky since if the thread is running we're going to be quite confused 2-daemon-idle-RUNNABLE – Stack – at [0x000000004084aea8] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443 at [0x000000004084aef0] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield(Lorg/jikesrvm/scheduler/greenthreads/VM_AbstractThreadQueue;)V at line 461 at [0x000000004084af38] Lorg/jikesrvm/scheduler/greenthreads/VM_IdleThread; run()V at line 87 at [0x000000004084afd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 3-daemon-idle-RUNNABLE – Stack – at [0x0000000040892cf8] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443 at [0x0000000040892d40] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; timerTickYield(I)V at line 371 at [0x0000000040892d88] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yieldpoint(I)V at line 349 at [0x0000000040892e08] Lorg/jikesrvm/scheduler/VM_Thread; yieldpointFromBackedge()V at line 808 at [0x0000000040892f38] Lorg/jikesrvm/scheduler/greenthreads/VM_IdleThread; run()V at line 101 at [0x0000000040892fd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 4-daemon-collector-RUNNABLE – Stack – at [0x000000004000edc0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 6-daemon-BLOCKED – Stack – at [0x00000000408dae68] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443 at [0x00000000408daeb0] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield(Lorg/jikesrvm/scheduler/greenthreads/VM_AbstractThreadQueue;Lorg/jikesrvm/scheduler/VM_ProcessorLock;)V at line 398 at [0x00000000408daf10] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; suspendFinalizerThreadInternal()V at line 633 at [0x00000000408daf50] Lorg/jikesrvm/scheduler/VM_Scheduler; suspendFinalizerThread()V at line 417 at [0x00000000408daf70] Lorg/jikesrvm/scheduler/VM_FinalizerThread; run()V at line 54 at [0x00000000408dafd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 7-main-RUNNABLE – Stack – at [0x0000000040985f40] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 443 at [0x0000000040985f88] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield()V at line 382 at [0x0000000040985fc0] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; yieldInternal()V at line 607 at [0x0000000040985fe8] Lorg/jikesrvm/scheduler/VM_Scheduler; yield()V at line 270 at [0x0000000040986008] Lorg/jikesrvm/memorymanagers/mminterface/VM_Handshake; requestAndAwaitCompletion(I)V at line 73 at [0x0000000040986050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; collect(Lorg/jikesrvm/memorymanagers/mminterface/VM_Handshake;I)V at line 270 at [0x0000000040986098] Lorg/jikesrvm/mm/mmtk/Collection; triggerCollectionStatic(I)V at line 127 at [0x00000000409860d0] Lorg/jikesrvm/mm/mmtk/Collection; triggerCollection(I)V at line 79 at [0x0000000040986110] Lorg/mmtk/plan/Plan; poll(ZLorg/mmtk/policy/Space;)Z at line 840 at [0x0000000040986170] Lorg/mmtk/policy/Space; acquire(I)Lorg/vmmagic/unboxed/Address; at line 394 at [0x00000000409861e0] Lorg/mmtk/utility/alloc/BumpPointer; allocSlowOnce(III)Lorg/vmmagic/unboxed/Address; at line 258 at [0x0000000040986280] Lorg/mmtk/utility/alloc/Allocator; allocSlowInline(III)Lorg/vmmagic/unboxed/Address; at line 229 at [0x0000000040986338] Lorg/mmtk/utility/alloc/BumpPointer; allocSlow(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;II)Lorg/vmmagic/unboxed/Address; at line 172 at [0x00000000409863e0] Lorg/mmtk/utility/alloc/BumpPointer; alloc(III)Lorg/vmmagic/unboxed/Address; at line 146 at [0x0000000040986480] Lorg/mmtk/plan/generational/GenMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 88 at [0x0000000040986528] Lorg/mmtk/plan/generational/marksweep/GenMSMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 89 at [0x00000000409865d0] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateSpace(Lorg/jikesrvm/memorymanagers/mminterface/Selected$Mutator;IIIII)Lorg/vmmagic/unboxed/Address; at line 664 at [0x0000000040986688] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateArrayInternal(II[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 639 at [0x0000000040986770] Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 605 at [0x0000000040986860] Lorg/jikesrvm/runtime/VM_Runtime; resolvedNewArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 463 at [0x0000000040986938] Ljava/lang/StringBuffer; <init>(Ljava/lang/String;)V at line 150 at [0x0000000040986998] Lspec/benchmarks/_213_javac/Type; tClass(Lspec/benchmarks/_213_javac/Identifier;)Lspec/benchmarks/_213_javac/Type; at line 167 at [0x0000000040986a10] Lspec/benchmarks/_213_javac/ClassDeclaration; getType()Lspec/benchmarks/_213_javac/Type; at line 76 at [0x0000000040986a40] Lspec/benchmarks/_213_javac/Environment; isMoreSpecific(Lspec/benchmarks/_213_javac/FieldDefinition;Lspec/benchmarks/_213_javac/FieldDefinition;)Z at line 179 at [0x0000000040986ad0] Lspec/benchmarks/_213_javac/ClassDefinition; matchMethod(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/ClassDefinition;Lspec/benchmarks/_213_javac/Identifier;[Lspec/benchmarks/_213_javac/Type;Lspec/benchmarks/_213_javac/FieldDefinition;Z)Lspec/benchmarks/_213_javac/FieldDefinition; at line 390 at [0x0000000040986be0] Lspec/benchmarks/_213_javac/ClassDefinition; matchMethod(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/ClassDefinition;Lspec/benchmarks/_213_javac/Identifier;[Lspec/benchmarks/_213_javac/Type;)Lspec/benchmarks/_213_javac/FieldDefinition; at line 432 at [0x0000000040986c90] Lspec/benchmarks/_213_javac/Expression; codeAppend(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;Lspec/benchmarks/_213_javac/ClassDeclaration;)V at line 263 at [0x0000000040986d50] Lspec/benchmarks/_213_javac/AddExpression; codeAppend(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;Lspec/benchmarks/_213_javac/ClassDeclaration;)V at line 105 at [0x0000000040986de0] Lspec/benchmarks/_213_javac/AddExpression; codeValue(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 120 at [0x0000000040986e90] Lspec/benchmarks/_213_javac/NewInstanceExpression; codeValue(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 205 at [0x0000000040986f18] Lspec/benchmarks/_213_javac/ConvertExpression; codeValue(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 117 at [0x0000000040986fa0] Lspec/benchmarks/_213_javac/ThrowStatement; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 94 at [0x0000000040987018] Lspec/benchmarks/_213_javac/IfStatement; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 127 at [0x00000000409870d0] Lspec/benchmarks/_213_javac/CompoundStatement; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Context;Lspec/benchmarks/_213_javac/Assembler;)V at line 135 at [0x0000000040987168] Lspec/benchmarks/_213_javac/SourceField; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Assembler;)V at line 403 at [0x0000000040987210] Lspec/benchmarks/_213_javac/SourceField; code(Lspec/benchmarks/_213_javac/Environment;Lspec/benchmarks/_213_javac/Assembler;)V at line 365 at [0x00000000409872b8] Lspec/benchmarks/_213_javac/SourceClass; compileClass(Lspec/benchmarks/_213_javac/Environment;Ljava/io/OutputStream;)V at line 565 at [0x0000000040987470] Lspec/benchmarks/_213_javac/SourceClass; compile(Lspec/benchmarks/_213_javac/Environment;Ljava/io/OutputStream;)V at line 528 at [0x0000000040987500] Lspec/benchmarks/_213_javac/Javac; compile([Ljava/lang/String;)Z at line 198 at [0x0000000040987668] Lspec/benchmarks/_213_javac/Javac; inst_main([Ljava/lang/String;)J at line 305 at [0x0000000040987718] Lspec/benchmarks/_213_javac/Main; runBenchmark([Ljava/lang/String;)J at line 45 at [0x0000000040987798] Lspec/benchmarks/_213_javac/Main; harnessMain([Ljava/lang/String;)J at line 57 at [0x00000000409877e0] Lspec/harness/ProgramRunner; runOnce(Ljava/lang/Object;IJILjava/util/Properties;)Lspec/harness/BenchmarkTime; at line 382 at [0x00000000409878d0] Lspec/harness/ProgramRunner; runBenchmark2()Ljava/util/Properties; at line 305 at [0x0000000040987a18] Lspec/harness/ProgramRunner; runBenchmark()V at line 238 at [0x0000000040987a78] Lspec/harness/ProgramRunner; run()V at line 206 at [0x0000000040987ab0] Lspec/harness/RunProgram; run(Ljava/lang/String;ZLjava/util/Properties;Lspec/harness/BenchmarkDone;)V at line 60 at [0x0000000040987c28] LSpecApplication; runBenchmark(Ljava/lang/String;Z)V at line 239 at [0x0000000040987c88] LSpecApplication; main([Ljava/lang/String;)V at line 155 at [0x0000000040987d38] <invisible method> at [0x0000000040987d50] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 132 at [0x0000000040987eb8] Lorg/jikesrvm/scheduler/VM_MainThread; run()V at line 193 at [0x0000000040987f60] Lorg/jikesrvm/scheduler/VM_Thread; run()V at line 581 at [0x0000000040987fd0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606 8-daemon-RUNNABLE – Stack – JikesRVM: internal error: recursive use of hardware exception registers (exiting) VM_Scheduler.dumpStack(): in a recursive call, 2 deep. – Stack – at [0x00000000400197f0] Lorg/jikesrvm/scheduler/VM_Scheduler; dumpStack(Lorg/vmmagic/unboxed/Address;)V at line 645 at [0x0000000040019838] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenScheduler; dumpVirtualMachineInternal()V at line 485 at [0x00000000400198a0] Lorg/jikesrvm/scheduler/VM_Scheduler; dumpVirtualMachine()V at line 237 at [0x00000000400198c0] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2029 at [0x00000000400198f0] Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 710 at [0x00000000400199b0] <hardware trap> at [0x00000000400199c8] Lorg/mmtk/utility/heap/Map; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 291 at [0x0000000040019a10] Lorg/mmtk/policy/Space; getDescriptorForAddress(Lorg/vmmagic/unboxed/Address;)I at line 359 at [0x0000000040019a48] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/Address;)Z at line 324 at [0x0000000040019ac0] Lorg/mmtk/policy/Space; isInSpace(ILorg/vmmagic/unboxed/ObjectReference;)Z at line 308 at [0x0000000040019b10] Lorg/mmtk/plan/generational/marksweep/GenMSMatureTraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;)Lorg/vmmagic/unboxed/ObjectReference; at line 52 at [0x0000000040019b60] Lorg/mmtk/plan/TraceLocal; traceObject(Lorg/vmmagic/unboxed/ObjectReference;Z)Lorg/vmmagic/unboxed/ObjectReference; at line 293 at [0x0000000040019bb8] Lorg/mmtk/plan/TraceLocal; processRootEdge(Lorg/vmmagic/unboxed/Address;)V at line 120 at [0x0000000040019c28] Lorg/jikesrvm/mm/mmtk/ScanBootImage; processChunk(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/plan/TraceLocal;)V at line 140 at [0x0000000040019d08] Lorg/jikesrvm/mm/mmtk/ScanBootImage; scanBootImage(Lorg/mmtk/plan/TraceLocal;)V at line 79 at [0x0000000040019dc8] Lorg/jikesrvm/mm/mmtk/Scanning; computeBootImageRoots(Lorg/mmtk/plan/TraceLocal;)V at line 278 at [0x0000000040019e08] Lorg/mmtk/plan/generational/GenCollector; collectionPhase(SZ)V at line 98 at [0x0000000040019e68] Lorg/mmtk/plan/generational/marksweep/GenMSCollector; collectionPhase(SZ)V at line 143 at [0x0000000040019ec8] Lorg/mmtk/plan/Phase; processPhaseStack(Z)Z at line 477 at [0x0000000040019fd8] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)Z at line 390 at [0x000000004001a020] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 39 at [0x000000004001a050] Lorg/jikesrvm/memorymanagers/mminterface/VM_CollectorThread; run()V at line 383 at [0x000000004001a1e0] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606
        Hide
        David Grove added a comment -

        ok, maybe I'm missing something, but I see no way for the appened code to work with 64 bit addresses. hashAddress needs to do something else in 64bit mode I believe.

        From org.mmtk.utility.heap.Map:

        /**

        • Hash an address to a chunk (this is simply done via bit shifting)
          *
        • @param address The address to be hashed
        • @return The chunk number that this address hashes into
          */
          @Inline
          private static int hashAddress(Address address) { return address.toWord().rshl(Space.LOG_BYTES_IN_CHUNK).toInt(); }

        /**

        • Return the space descriptor for the space in which this object
        • resides.
          *
        • @param object The object in question
        • @return The space descriptor for the space in which the object
        • resides
          */
          @Inline
          public static int getDescriptorForAddress(Address object) { if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(!object.isZero()); int index = hashAddress(object); return descriptorMap[index]; }
        Show
        David Grove added a comment - ok, maybe I'm missing something, but I see no way for the appened code to work with 64 bit addresses. hashAddress needs to do something else in 64bit mode I believe. From org.mmtk.utility.heap.Map: /** Hash an address to a chunk (this is simply done via bit shifting) * @param address The address to be hashed @return The chunk number that this address hashes into */ @Inline private static int hashAddress(Address address) { return address.toWord().rshl(Space.LOG_BYTES_IN_CHUNK).toInt(); } /** Return the space descriptor for the space in which this object resides. * @param object The object in question @return The space descriptor for the space in which the object resides */ @Inline public static int getDescriptorForAddress(Address object) { if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(!object.isZero()); int index = hashAddress(object); return descriptorMap[index]; }
        Hide
        Steve Blackburn added a comment -

        Yeah, that looks pretty embarrassing. I'm just about to get on a plane, but I'll take a look at it RSN.

        --Steve

        Show
        Steve Blackburn added a comment - Yeah, that looks pretty embarrassing. I'm just about to get on a plane, but I'll take a look at it RSN. --Steve
        Hide
        David Grove added a comment -

        Sigh. Pushing ppc64 problems off to 2.9.3; don't think we're going to be able to nail these in 2.9.2 time frame.

        Show
        David Grove added a comment - Sigh. Pushing ppc64 problems off to 2.9.3; don't think we're going to be able to nail these in 2.9.2 time frame.
        David Grove made changes -
        Fix Version/s 2.9.2 [ 13599 ]
        Fix Version/s 2.9.3 [ 13726 ]
        David Grove made changes -
        Fix Version/s 2.9.4 [ 14162 ]
        Fix Version/s 2.9.3 [ 13726 ]
        David Grove made changes -
        Assignee David Grove [ dgrove ]
        Hide
        David Grove added a comment -

        This particular problem (hashAddress not working on 64 bits) was fixed last fall. There are still issues with SPECjvm98 on ppc64, but we're dealing with those under separate items.

        Show
        David Grove added a comment - This particular problem (hashAddress not working on 64 bits) was fixed last fall. There are still issues with SPECjvm98 on ppc64, but we're dealing with those under separate items.
        David Grove made changes -
        Fix Version/s 2.9.4 [ 14162 ]
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Closed [ 6 ]

          People

          • Assignee:
            David Grove
            Reporter:
            David Grove
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: