diff options
author | Lisa Hsu <hsul@eecs.umich.edu> | 2004-03-04 21:57:09 -0500 |
---|---|---|
committer | Lisa Hsu <hsul@eecs.umich.edu> | 2004-03-04 21:57:09 -0500 |
commit | f3861d0cc7d3574f985b3aeb37ddf6038b6c9a11 (patch) | |
tree | c9def05ce48ab4f92db1d26414ae5f34667e09ab /sim | |
parent | eabc59ca2d130cb4069a3cfa20ce30ff46bab0c9 (diff) | |
download | gem5-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.cc | 10 | ||||
-rw-r--r-- | sim/system.hh | 2 |
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; |