org.jikesrvm.adaptive.measurements.organizers
Class MethodSampleOrganizer

java.lang.Object
  extended by org.mmtk.plan.MutatorContext
      extended by org.mmtk.plan.SimpleMutator
          extended by org.mmtk.plan.StopTheWorldMutator
              extended by org.mmtk.plan.generational.GenMutator
                  extended by org.mmtk.plan.generational.immix.GenImmixMutator
                      extended by org.jikesrvm.mm.mminterface.Selected.Mutator
                          extended by org.jikesrvm.mm.mminterface.ThreadContext
                              extended by org.jikesrvm.scheduler.RVMThread
                                  extended by org.jikesrvm.adaptive.measurements.organizers.Organizer
                                      extended by org.jikesrvm.adaptive.measurements.organizers.MethodSampleOrganizer
All Implemented Interfaces:
Constants

public final class MethodSampleOrganizer
extends Organizer

An organizer for method listener information.

This organizer is designed to work well with non-decayed cumulative method samples. The basic idea is that each time the sampling threshold is reached we update the accumulated method sample data with the new data and then notify the controller of all methods that were sampled in the current window.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.jikesrvm.scheduler.RVMThread
RVMThread.BlockAdapter, RVMThread.GCBlockAdapter, RVMThread.HandshakeBlockAdapter, RVMThread.HardHandshakeVisitor, RVMThread.SoftHandshakeVisitor, RVMThread.SuspendBlockAdapter, RVMThread.Waiting
 
Field Summary
private  int filterOptLevel
          Filter out all opt-compiled methods that were compiled at this level or higher.
 
Fields inherited from class org.jikesrvm.adaptive.measurements.organizers.Organizer
listener
 
Fields inherited from class org.jikesrvm.scheduler.RVMThread
acctLock, activeMutatorContext, allButGC, ALWAYS_LOCK_ON_STATE_TRANSITION, asyncDebugRequestedForThisThread, BACKEDGE, barriersEntered, barriersExited, BLOCKED_IN_JNI, BLOCKED_IN_NATIVE, bootThread, bridgeInstructions, cachedFreeLock, codePatchSyncRequested, contextRegisters, contextRegistersSave, countdownCBSCall, countdownCBSMethod, daemon, debugLock, debugRequested, debugThreads, doProfileReport, dumpLock, dumpStackOnBlock, EPILOGUE, exitInProgress, feedlet, firstCBSCallSample, firstCBSMethodSample, flushRequested, fooFPOffset, gcBlockAdapter, handshakeBlockAdapter, handshakeLock, handshakeThreads, IN_JAVA, IN_JAVA_TO_BLOCK, IN_JNI, IN_NATIVE, inDumpStack, isWaitingForOsr, jniEnv, LAST_EXEC_STATUS, lockingId, LOG_MAX_THREADS, MAX_THREADS, NATIVE_EPILOGUE, NATIVE_PROLOGUE, NEW, nextSlot, numCBSCallSamples, numCBSMethodSamples, numProcessors, numThreads, onStackReplacementEvent, osr_done, OSROPT, PRIMORDIAL_THREAD_INDEX, PROLOGUE, pthread_id, requesting_osr, softHandshakeDataLock, softHandshakeLeft, softHandshakeRequested, stackLimit, suspendBlockAdapter, takeYieldpoint, TERMINATED, thread_cbs_counter, threadBySlot, threadingInitialized, threads, threadSlot, timerTicks, timeSliceExpired, trace, traceAboutToTerminate, traceAcct, traceBind, traceBlock, traceDetails, traceReallyBlock, tsFPOffset, waitCount, waiting, waitObject, yieldForCBSCall, yieldForCBSMethod, yieldToOSRRequested
 
Fields inherited from class org.jikesrvm.mm.mminterface.ThreadContext
collectorContext
 
Fields inherited from class org.mmtk.plan.generational.GenMutator
arrayRemset, nursery, remset
 
Fields inherited from class org.mmtk.plan.MutatorContext
immortal, lgcode, log, los, nonmove, smcode
 
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
 
Constructor Summary
MethodSampleOrganizer(int filterOptLevel)
           
 
Method Summary
 void initialize()
          Initialization: set up data structures and sampling objects.
(package private)  void thresholdReached()
          Method that is called when the sampling threshold is reached
 
Methods inherited from class org.jikesrvm.adaptive.measurements.organizers.Organizer
activate, report, run
 
Methods inherited from class org.jikesrvm.scheduler.RVMThread
assertAcceptableStates, assertAcceptableStates, assertUnacceptableStates, assertUnacceptableStates, asyncBlock, attemptLeaveNativeNoBlock, beginPairHandshake, beginPairWith, beginPairWithCurrent, block, blockedFor, boot, checkDebugRequest, clearDisallowAllocationsByThisThread, clearEmergencyAllocation, clearInterrupted, clearOutOfMemoryError, clearPhysicalAllocationFailed, communicationLock, communicationLockForSlot, countStackFrames, disableYieldpoints, dump, dump, dump, dump, dumpAcct, dumpAll, dumpStack, dumpStack, dumpStack, dumpStackAndDie, dumpVirtualMachine, dumpWithPadding, emergencyAllocation, enableYieldpoints, endPairHandshake, endPairWith, endPairWithCurrent, enterJNIBlockedFromCallIntoNative, enterJNIBlockedFromJNIFunctionCall, enterJNIFromCallIntoNative, enterJNIFromJNIFunctionCall, enterNative, extDump, failIfYieldpointsDisabled, fixupMovedStack, gcEnabled, getCollectionAttempt, getContextRegisters, getCurrentFeedlet, getCurrentThread, getCurrentThreadSlot, getDisableGCDepth, getDisallowAllocationsByThisThread, getExceptionRegisters, getExecStatus, getIsAboutToTerminate, getJavaLangThread, getJNIEnv, getLockingId, getName, getOutOfMemoryError, getPriority, getStack, getStackLength, getState, getThreadForStackTrace, getThreadSlot, handleUncaughtException, hardHandshakeResume, hardHandshakeResume, hardHandshakeSuspend, hardHandshakeSuspend, hasNativeStackFrame, holdsLock, ignoreHandshakesAndGC, init, initializeJNIEnv, interrupt, isAlive, isBlocked, isBootThread, isDaemonThread, isGCThread, isInJava, isInterrupted, isSystemThread, join, leaveJNIBlockedFromCallIntoNative, leaveJNIFromCallIntoNative, leaveJNIFromJNIFunctionCall, leaveNative, makeDaemon, monitor, notify, notifyAll, notRunning, observeExecStatusAtSTW, park, physicalAllocationFailed, processAboutToTerminate, raiseIllegalMonitorStateException, reportCollectionAttempt, reportThreadTransitionCounts, resetCollectionAttempts, resizeCurrentStack, resume, safeAsyncBlock, safeBlock, safeToForceGCs, saveThreadState, setDisableGCDepth, setDisallowAllocationsByThisThread, setEmergencyAllocation, setName, setOutOfMemoryError, setPhysicalAllocationFailed, setPriority, setupBootJavaThread, setupBootThread, shouldBeSampled, sleep, sleep, snapshotHandshakeThreads, softHandshake, softRendezvous, softRendezvousCheckAndClear, softRendezvousCommit, start, stop, suspend, terminate, toString, trace, trace, trace, traceback, traceback, traceHex, unblock, unpark, wait, wait, waitAbsoluteNanos, worldStopped, yield, yieldpoint, yieldpointFromBackedge, yieldpointFromEpilogue, yieldpointFromPrologue, yieldpointsEnabled
 
Methods inherited from class org.jikesrvm.mm.mminterface.Selected.Mutator
get, getThread
 
Methods inherited from class org.mmtk.plan.generational.immix.GenImmixMutator
alloc, collectionPhase, getAllocatorFromSpace, postAlloc
 
Methods inherited from class org.mmtk.plan.generational.GenMutator
assertRemsetsFlushed, flushRememberedSets, objectReferenceBulkCopy, objectReferenceNonHeapWrite, objectReferenceTryCompareAndSwap, objectReferenceWrite
 
Methods inherited from class org.mmtk.plan.MutatorContext
addressBulkCopy, addressRead, addressTryCompareAndSwap, addressWrite, booleanBulkCopy, booleanRead, booleanWrite, byteBulkCopy, byteRead, byteWrite, charBulkCopy, charRead, charWrite, checkAllocator, deinitMutator, doubleBulkCopy, doubleRead, doubleWrite, extentBulkCopy, extentRead, extentWrite, floatBulkCopy, floatRead, floatWrite, flush, getId, getLog, initMutator, intBulkCopy, intRead, intTryCompareAndSwap, intWrite, javaLangReferenceReadBarrier, longBulkCopy, longRead, longTryCompareAndSwap, longWrite, objectReferenceNonHeapRead, objectReferenceRead, offsetBulkCopy, offsetRead, offsetWrite, shortBulkCopy, shortRead, shortWrite, wordBulkCopy, wordRead, wordTryCompareAndSwap, wordWrite
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

filterOptLevel

private int filterOptLevel
Filter out all opt-compiled methods that were compiled at this level or higher.

Constructor Detail

MethodSampleOrganizer

public MethodSampleOrganizer(int filterOptLevel)
Parameters:
filterOptLevel - filter out all opt-compiled methods that were compiled at this level or higher
Method Detail

initialize

public void initialize()
Initialization: set up data structures and sampling objects.

Specified by:
initialize in class Organizer

thresholdReached

void thresholdReached()
Method that is called when the sampling threshold is reached

Specified by:
thresholdReached in class Organizer