summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2004-06-28 16:49:35 -0400
committerNathan Binkert <binkertn@umich.edu>2004-06-28 16:49:35 -0400
commit838273a196c66f3c6ee834ae865db14f313ef1bc (patch)
tree60e31aec4ac06c862ec92f2091b06399ec879b37 /sim
parent19d5789db1a58747daca88e5cd6580bb95db008e (diff)
downloadgem5-838273a196c66f3c6ee834ae865db14f313ef1bc.tar.xz
fix up the recordEvent stuff to support ignoring events
arch/alpha/ev5.cc: cpu/simple_cpu/simple_cpu.cc: update for new event interface base/stats/events.cc: implement the ignore event function which matches sim objects from which to ignore events. Make insert event like insert data and make it able to insert many events in a single transaction with the database. base/stats/events.hh: Make it possible to ignore events sim/sim_object.cc: make recordEvent a member function of SimObject to implement the ignore function easily sim/sim_object.hh: implement the ignore event stuff in the sim object. This is a bit of a hack, but an easy place to put it. --HG-- extra : convert_revision : ba3f25a14ad03662c53fb35514860d69be8cd4f0
Diffstat (limited to 'sim')
-rw-r--r--sim/sim_object.cc9
-rw-r--r--sim/sim_object.hh4
2 files changed, 13 insertions, 0 deletions
diff --git a/sim/sim_object.cc b/sim/sim_object.cc
index cab629f8d..39219b500 100644
--- a/sim/sim_object.cc
+++ b/sim/sim_object.cc
@@ -32,6 +32,7 @@
#include "base/inifile.hh"
#include "base/misc.hh"
#include "base/trace.hh"
+#include "base/stats/events.hh"
#include "sim/configfile.hh"
#include "sim/host.hh"
#include "sim/sim_object.hh"
@@ -58,6 +59,7 @@ SimObject::SimObjectList SimObject::simObjectList;
SimObject::SimObject(const string &_name)
: objName(_name)
{
+ doRecordEvent = !Stats::ignoreEvent(_name);
simObjectList.push_back(this);
}
@@ -170,4 +172,11 @@ SimObject::serializeAll(ostream &os)
}
}
+void
+SimObject::recordEvent(const std::string &stat)
+{
+ if (doRecordEvent)
+ Stats::recordEvent(stat);
+}
+
DEFINE_SIM_OBJECT_CLASS_NAME("SimObject", SimObject)
diff --git a/sim/sim_object.hh b/sim/sim_object.hh
index 1a9ed363d..770cd558e 100644
--- a/sim/sim_object.hh
+++ b/sim/sim_object.hh
@@ -82,6 +82,10 @@ class SimObject : public Serializable
// static: call nameOut() & serialize() on all SimObjects
static void serializeAll(std::ostream &);
+
+ public:
+ bool doRecordEvent;
+ void recordEvent(const std::string &stat);
};
#endif // __SIM_OBJECT_HH__