Get rid of the Statistics and Statreset ParamContexts, and

expose all of the relevant functionality to python.  Clean
up the mysql code while we're at it.

--HG--
extra : convert_revision : 5b711202a5a452b8875ebefb136a156b65c24279
This commit is contained in:
Nathan Binkert
2007-02-17 22:52:32 -08:00
parent 01f32efa4b
commit e94103397c
16 changed files with 278 additions and 168 deletions

View File

@@ -110,6 +110,7 @@ swig_it('main')
swig_it('debug')
swig_it('event')
swig_it('random')
swig_it('stats')
swig_it('trace')
# Action function to build the zip archive. Uses the PyZipFile module

View File

@@ -264,7 +264,7 @@ def main():
import objects
# set stats options
objects.Statistics.text_file = options.stats_file
internal.stats.initText(options.stats_file)
# set debugging options
for when in options.debug_break:

View File

@@ -1,8 +1,6 @@
from m5.SimObject import SimObject
from m5.params import *
from Serialize import Serialize
from Serialize import Statreset
from Statistics import Statistics
class Root(SimObject):
type = 'Root'
@@ -12,7 +10,5 @@ class Root(SimObject):
"print a progress message every n ticks (0 = never)")
output_file = Param.String('cout', "file to dump simulator output to")
checkpoint = Param.String('', "checkpoint file to load")
# stats = Param.Statistics(Statistics(), "statistics object")
# serialize = Param.Serialize(Serialize(), "checkpoint generation options")
stats = Statistics()
serialize = Serialize()

60
src/python/swig/stats.i Normal file
View File

@@ -0,0 +1,60 @@
/*
* Copyright (c) 2006 The Regents of The University of Michigan
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met: redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer;
* redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution;
* neither the name of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Authors: Nathan Binkert
*/
%module stats
%include "std_string.i"
%{
#include "base/statistics.hh"
#include "base/stats/mysql.hh"
#include "base/stats/text.hh"
#include "sim/stat_control.hh"
%}
namespace Stats {
void initSimStats();
void initText(const std::string &filename, bool desc=true, bool compat=true);
void initMySQL(std::string host, std::string database, std::string user = "",
std::string passwd = "", std::string name = "test",
std::string sample = "0", std::string project = "test");
void StatEvent(bool dump, bool reset, Tick when = curTick, Tick repeat = 0);
void dump();
void reset();
/* namespace Stat */ }
%wrapper %{
// fix up module name to reflect the fact that it's inside the m5 package
#undef SWIG_name
#define SWIG_name "m5.internal._stats"
%}