stats: create an enable phase, and a prepare phase.
Enable more or less takes the place of check, but also allows stats to do some other configuration. Prepare moves all of the code that readies a stat for dumping into a separate function in preparation for supporting serialization of certain pieces of statistics data. While we're at it, clean up the visitor code and some of the python code.
This commit is contained in:
@@ -27,7 +27,14 @@
|
||||
# Authors: Nathan Binkert
|
||||
|
||||
import internal
|
||||
from internal.core import initAll, regAllStats
|
||||
|
||||
def setOutputDir(dir):
|
||||
internal.core.setOutputDir(dir)
|
||||
|
||||
def initAll():
|
||||
internal.core.initAll()
|
||||
|
||||
def regAllStats():
|
||||
internal.core.regAllStats()
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ import sys
|
||||
|
||||
# import the SWIG-wrapped main C++ functions
|
||||
import internal
|
||||
import core
|
||||
import stats
|
||||
from main import options
|
||||
import SimObject
|
||||
import ticks
|
||||
@@ -52,23 +54,23 @@ def instantiate(root):
|
||||
ini_file.close()
|
||||
|
||||
# Initialize the global statistics
|
||||
internal.stats.initSimStats()
|
||||
stats.initSimStats()
|
||||
|
||||
# Create the C++ sim objects and connect ports
|
||||
root.createCCObject()
|
||||
root.connectPorts()
|
||||
|
||||
# Do a second pass to finish initializing the sim objects
|
||||
internal.core.initAll()
|
||||
core.initAll()
|
||||
|
||||
# Do a third pass to initialize statistics
|
||||
internal.core.regAllStats()
|
||||
core.regAllStats()
|
||||
|
||||
# Check to make sure that the stats package is properly initialized
|
||||
internal.stats.check()
|
||||
# We're done registering statistics. Enable the stats package now.
|
||||
stats.enable()
|
||||
|
||||
# Reset to put the stats in a consistent state.
|
||||
internal.stats.reset()
|
||||
stats.reset()
|
||||
|
||||
def doDot(root):
|
||||
dot = pydot.Dot()
|
||||
|
||||
@@ -28,9 +28,6 @@
|
||||
|
||||
import internal
|
||||
|
||||
from internal.stats import dump
|
||||
from internal.stats import initSimStats
|
||||
from internal.stats import reset
|
||||
from internal.stats import StatEvent as event
|
||||
|
||||
def initText(filename, desc=True, compat=True):
|
||||
@@ -44,3 +41,19 @@ def initMySQL(host, database, user='', passwd='', project='test', name='test',
|
||||
|
||||
internal.stats.initMySQL(host, database, user, passwd, project, name,
|
||||
sample)
|
||||
|
||||
def initSimStats():
|
||||
internal.stats.initSimStats()
|
||||
|
||||
def enable():
|
||||
internal.stats.enable()
|
||||
|
||||
def dump():
|
||||
# Currently prepare happens in the dump, but we should maybe move
|
||||
# that out.
|
||||
|
||||
#internal.stats.prepare()
|
||||
internal.stats.dump()
|
||||
|
||||
def reset():
|
||||
internal.stats.reset()
|
||||
|
||||
@@ -48,7 +48,8 @@ void initMySQL(std::string host, std::string database, std::string user,
|
||||
|
||||
void StatEvent(bool dump, bool reset, Tick when = curTick, Tick repeat = 0);
|
||||
|
||||
void check();
|
||||
void enable();
|
||||
void prepare();
|
||||
void dump();
|
||||
void reset();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user