public class Controller extends Object implements Callbacks.ExitMonitor, Callbacks.RecompileAllDynamicallyLoadedMethodsMonitor
Modifier and Type | Field and Description |
---|---|
private static boolean |
booted
Has the execution of boot completed successfully?
|
static BlockingPriorityQueue |
compilationQueue
A blocking priority queue where the controller will place methods
to be opt compiled
(an output of the controller thread)
|
static CompilationThread |
compilationThread
Thread that will perform opt-compilations as directed by the controller
(the thread sets this field when it is created.)
|
static int |
controllerClock
Controller virtual clock, ticked every taken yieldpoint.
|
static BlockingPriorityQueue |
controllerInputQueue
A blocking priority queue where organizers place events to
be processed by the controller
(an input to the controller thread)
|
static ControllerThread |
controllerThread
The controller thread, it makes all the decisions
(the thread sets this field when it is created.)
|
static PartialCallGraph |
dcg
The dynamic call graph
|
static boolean |
enabled
Signals when the options and (optional) logging mechanism are enabled
|
static MethodCountData |
methodSamples
The main hot method raw data object.
|
private static String[] |
optCompilerOptions
Deferred command line arguments for the opt compiler
|
static AOSOptions |
options
Controller subsystem control options
|
static Vector<Organizer> |
organizers
Threads that will organize profile data as directed by the controller
|
static OSROrganizerThread |
osrOrganizer
Thread collecting osr request and pass it to controllerThread
|
static RecompilationStrategy |
recompilationStrategy
The strategy used to make recompilation decisions
|
private static ThreadDeath |
threadDeath
Used to shut down threads
|
Constructor and Description |
---|
Controller() |
Modifier and Type | Method and Description |
---|---|
static void |
addOptCompilerOption(String arg)
Adds a deferred command line argument.
|
static void |
boot()
Initialize the controller subsystem (called from VM.boot)
This method is called AFTER the command line options are processed.
|
(package private) static void |
createControllerThread() |
static String[] |
getOptCompilerOptions() |
void |
notifyExit(int value)
To be called when the VM is about to exit.
|
void |
notifyRecompileAll()
Called when the application wants to recompile all dynamically
loaded methods.
|
static void |
processCommandLineArg(String arg)
Process any command line arguments passed to the controller subsystem.
|
static void |
report()
This method is called when the VM is exiting to provide a hook to allow
the adaptive optimization subsystem to generate a summary report.
|
static void |
stop()
Stop all AOS threads and exit the adaptive system.
|
public static boolean enabled
public static final AOSOptions options
private static String[] optCompilerOptions
public static ControllerThread controllerThread
public static CompilationThread compilationThread
public static OSROrganizerThread osrOrganizer
public static final Vector<Organizer> organizers
public static BlockingPriorityQueue controllerInputQueue
public static BlockingPriorityQueue compilationQueue
public static RecompilationStrategy recompilationStrategy
public static int controllerClock
public static MethodCountData methodSamples
public static PartialCallGraph dcg
private static final ThreadDeath threadDeath
private static boolean booted
public Controller()
public static void addOptCompilerOption(String arg)
arg
- the deferred argumentspublic static String[] getOptCompilerOptions()
public static void boot()
public void notifyExit(int value)
notifyExit
in interface Callbacks.ExitMonitor
value
- the exit valuepublic void notifyRecompileAll()
notifyRecompileAll
in interface Callbacks.RecompileAllDynamicallyLoadedMethodsMonitor
static void createControllerThread()
public static void processCommandLineArg(String arg)
This method has the responsibility of creating the options object if it does not already exist
NOTE: All command line argument processing should be handled via the automatically generated code in AOSOptions.java. Don't even think of adding handwritten stuff here! --dave
arg
- the command line argument to be processedpublic static void report()
public static void stop()