summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorLisa Hsu <hsul@eecs.umich.edu>2004-03-04 21:57:09 -0500
committerLisa Hsu <hsul@eecs.umich.edu>2004-03-04 21:57:09 -0500
commitf3861d0cc7d3574f985b3aeb37ddf6038b6c9a11 (patch)
treec9def05ce48ab4f92db1d26414ae5f34667e09ab /sim
parenteabc59ca2d130cb4069a3cfa20ce30ff46bab0c9 (diff)
downloadgem5-f3861d0cc7d3574f985b3aeb37ddf6038b6c9a11.tar.xz
Overall gist of this is to 'dynamicize' the tracking of functions so you can choose them at the .ini stage rather than at compile time.
to do it: in .ini file set binned_fns=foo null bar foo what this says is, track foo when it is called by null (i.e. anything). bin bar only when it is called by foo. essentially, if you have a path of functions to track, the 0th, 2nd, 4th fn listed are the fns to track, and the 1st, 3rd, 5th are their respective callers. base/statistics.hh: turn it back to FS_MEASURE since we already have a build in place kern/tru64/tru64_events.cc: remove FS_MEASURE #defs. add more DPRINTF's. manage an anomaly that happens when tracking idle_thread. kern/tru64/tru64_events.hh: remove FS_MEASURE #defs kern/tru64/tru64_system.cc: make DumpState print all the time, but only with DPRINTF. add a new parameter to tru64System a vector<string> binned_fns, to read in from .ini file. now all this binning stuff is dynamically generated. kern/tru64/tru64_system.hh: remove all static binning stuff, add support for dynamic sim/system.cc: change nonPath bin name to Kernel, remove FS_MEASURE sim/system.hh: change nonPath to Kernel --HG-- extra : convert_revision : 9ee813c0a64273bab4125815b7bc8145c5897ec1
Diffstat (limited to 'sim')
-rw-r--r--sim/system.cc10
-rw-r--r--sim/system.hh2
2 files changed, 4 insertions, 8 deletions
diff --git a/sim/system.cc b/sim/system.cc
index db93250ee..36275f400 100644
--- a/sim/system.cc
+++ b/sim/system.cc
@@ -50,13 +50,11 @@ System::System(const std::string _name,
{
// add self to global system list
systemList.push_back(this);
-#ifdef FS_MEASURE
if (bin == true) {
- nonPath = new Statistics::MainBin("non TCPIP path stats");
- nonPath->activate();
+ Kernel = new Statistics::MainBin("non TCPIP Kernel stats");
+ Kernel->activate();
} else
- nonPath = NULL;
-#endif
+ Kernel = NULL;
}
@@ -104,7 +102,6 @@ printSystems()
System::printSystems();
}
-#ifdef FS_MEASURE
Statistics::MainBin *
System::getBin(const std::string &name)
{
@@ -127,7 +124,6 @@ System::findContext(Addr pcb)
} else
return NULL;
}
-#endif //FS_MEASURE
DEFINE_SIM_OBJECT_CLASS_NAME("System", System)
diff --git a/sim/system.hh b/sim/system.hh
index 2e0cb3dbf..aba5f2590 100644
--- a/sim/system.hh
+++ b/sim/system.hh
@@ -54,7 +54,7 @@ class System : public SimObject
public:
Statistics::Scalar<Counter> fnCalls;
- Statistics::MainBin *nonPath;
+ Statistics::MainBin *Kernel;
Statistics::MainBin * getBin(const std::string &name);
virtual bool findCaller(std::string, std::string) const = 0;