org.mmtk.utility.deque
Class TraceBuffer

java.lang.Object
  extended by org.mmtk.utility.deque.Deque
      extended by org.mmtk.utility.deque.LocalSSB
          extended by org.mmtk.utility.deque.LocalQueue
              extended by org.mmtk.utility.deque.TraceBuffer
All Implemented Interfaces:
Constants, TracingConstants

public class TraceBuffer
extends LocalQueue
implements Constants, TracingConstants

This supports unsynchronized enqueuing and dequeuing of tracing data and bulk processing of the buffer.


Field Summary
static boolean OMIT_ALLOCS
           
static boolean OMIT_BOOTALLOCS
           
static boolean OMIT_OTHERS
           
static boolean OMIT_OUTPUT
           
static boolean OMIT_UNREACHABLES
           
static boolean OMIT_UPDATES
           
private static Word TRACE_ALLOC_FP
           
private static Word TRACE_ALLOC_SIZE
           
private static Word TRACE_ALLOC_THREAD
           
private static Word TRACE_ARRAY_ELEMENT
           
private static Word TRACE_ARRAY_TARGET
           
private static Word TRACE_BOOT_ALLOC_SIZE
           
private static Word TRACE_DEATH_TIME
           
private static Word TRACE_FIELD_SLOT
           
private static Word TRACE_FIELD_TARGET
           
private static Word TRACE_NEW_RECORD
           
private static Word TRACE_STATIC_TARGET
           
private static Word TRACE_TIB_VALUE
           
 
Fields inherited from class org.mmtk.utility.deque.LocalQueue
head
 
Fields inherited from class org.mmtk.utility.deque.LocalSSB
queue, tail, tailBufferEnd
 
Fields inherited from class org.mmtk.utility.deque.Deque
BUFFER_MASK, BUFFER_SIZE, HEAD_INITIAL_VALUE, LOG_PAGES_PER_BUFFER, META_DATA_SIZE, NEXT_FIELD_OFFSET, PAGES_PER_BUFFER, TAIL_INITIAL_VALUE, USABLE_BUFFER_BYTES
 
Fields inherited from interface org.mmtk.utility.Constants
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING
 
Fields inherited from interface org.mmtk.utility.TracingConstants
TRACE_ALLOC, TRACE_ARRAY_SET, TRACE_BOOT_ALLOC, TRACE_BOOTEND, TRACE_BOOTSTART, TRACE_DEATH, TRACE_EXACT_ALLOC, TRACE_EXACT_IMMORTAL_ALLOC, TRACE_FIELD_SET, TRACE_GCBAR, TRACE_GCEND, TRACE_GCROOT, TRACE_GCSTART, TRACE_IMMORTAL_ALLOC, TRACE_ROOTPTR, TRACE_STACKDELTA, TRACE_STATIC_SET, TRACE_THREAD_SWITCH, TRACE_TIB_SET
 
Constructor Summary
TraceBuffer(SharedDeque pool)
          Constructor
 
Method Summary
 void process()
          Process the data in the tracing buffer, output information as needed.
 void push(Word i)
          Push word onto the tracing queue.
 
Methods inherited from class org.mmtk.utility.deque.LocalQueue
checkDequeue, headStarved, resetLocal, uncheckedDequeue
 
Methods inherited from class org.mmtk.utility.deque.LocalSSB
bufferSentinel, checkTailInsert, flushLocal, isFlushed, normalizeTail, reset, uncheckedTailInsert
 
Methods inherited from class org.mmtk.utility.deque.Deque
bufferEnd, bufferFirst, bufferLast, bufferLast, bufferLastOffset, bufferOffset, bufferStart
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRACE_NEW_RECORD

private static final Word TRACE_NEW_RECORD

TRACE_ALLOC_SIZE

private static final Word TRACE_ALLOC_SIZE

TRACE_ALLOC_FP

private static final Word TRACE_ALLOC_FP

TRACE_ALLOC_THREAD

private static final Word TRACE_ALLOC_THREAD

TRACE_TIB_VALUE

private static final Word TRACE_TIB_VALUE

TRACE_DEATH_TIME

private static final Word TRACE_DEATH_TIME

TRACE_FIELD_TARGET

private static final Word TRACE_FIELD_TARGET

TRACE_ARRAY_TARGET

private static final Word TRACE_ARRAY_TARGET

TRACE_FIELD_SLOT

private static final Word TRACE_FIELD_SLOT

TRACE_ARRAY_ELEMENT

private static final Word TRACE_ARRAY_ELEMENT

TRACE_STATIC_TARGET

private static final Word TRACE_STATIC_TARGET

TRACE_BOOT_ALLOC_SIZE

private static final Word TRACE_BOOT_ALLOC_SIZE

OMIT_ALLOCS

public static final boolean OMIT_ALLOCS
See Also:
Constant Field Values

OMIT_UPDATES

public static final boolean OMIT_UPDATES
See Also:
Constant Field Values

OMIT_BOOTALLOCS

public static final boolean OMIT_BOOTALLOCS
See Also:
Constant Field Values

OMIT_UNREACHABLES

public static final boolean OMIT_UNREACHABLES
See Also:
Constant Field Values

OMIT_OTHERS

public static final boolean OMIT_OTHERS
See Also:
Constant Field Values

OMIT_OUTPUT

public static final boolean OMIT_OUTPUT
See Also:
Constant Field Values
Constructor Detail

TraceBuffer

public TraceBuffer(SharedDeque pool)
Constructor

Parameters:
pool - The shared queue to which this queue will append its buffers (when full or flushed) and from which it will aquire new buffers when it has exhausted its own.
Method Detail

push

public final void push(Word i)
Push word onto the tracing queue.

Parameters:
i - The data to be pushed onto the tracing queue

process

public final void process()
Process the data in the tracing buffer, output information as needed.