From: Hoa Nguyen Date: Wed, 25 Nov 2020 09:38:30 +0000 (-0800) Subject: sim: Update stats style of System and Process X-Git-Tag: develop-gem5-snapshot~334 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fa81ca49883b0752b67b6188d2f29ceb8734be69;p=gem5.git sim: Update stats style of System and Process Change-Id: I3af072a61a18f4fbba3f7d4b632c58501e7b7ae8 Signed-off-by: Hoa Nguyen Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37995 Tested-by: kokoro Maintainer: Jason Lowe-Power Reviewed-by: Jason Lowe-Power --- diff --git a/src/sim/process.cc b/src/sim/process.cc index 315f86b7e..7819820ca 100644 --- a/src/sim/process.cc +++ b/src/sim/process.cc @@ -128,7 +128,8 @@ Process::Process(const ProcessParams ¶ms, EmulationPageTable *pTable, _pid(params.pid), _ppid(params.ppid), _pgid(params.pgid), drivers(params.drivers), fds(make_shared(params.input, params.output, params.errout)), - childClearTID(0) + childClearTID(0), + ADD_STAT(numSyscalls, "Number of system calls") { if (_pid >= System::maxPID) fatal("_pid is too large: %d", _pid); @@ -251,19 +252,6 @@ Process::clone(ThreadContext *otc, ThreadContext *ntc, np->envp.insert(np->envp.end(), envp.begin(), envp.end()); } -void -Process::regStats() -{ - SimObject::regStats(); - - using namespace Stats; - - numSyscalls - .name(name() + ".numSyscalls") - .desc("Number of system calls") - ; -} - void Process::revokeThreadContext(int context_id) { diff --git a/src/sim/process.hh b/src/sim/process.hh index 2234cb03e..c9e6a8b75 100644 --- a/src/sim/process.hh +++ b/src/sim/process.hh @@ -105,9 +105,6 @@ class Process : public SimObject Addr getStartPC(); ::Loader::ObjectFile *getInterpreter(); - // override of virtual SimObject method: register statistics - void regStats() override; - void allocateMem(Addr vaddr, int64_t size, bool clobber = false); /// Attempt to fix up a fault at vaddr by allocating a page on the stack. @@ -162,8 +159,6 @@ class Process : public SimObject // system object which owns this process System *system; - Stats::Scalar numSyscalls; // track how many system calls are executed - // flag for using architecture specific page table bool useArchPT; // running KVM requires special initialization @@ -286,6 +281,8 @@ class Process : public SimObject // Process was forked with SIGCHLD set. bool *sigchld; + + Stats::Scalar numSyscalls; // track how many system calls are executed }; #endif // __PROCESS_HH__ diff --git a/src/sim/system.cc b/src/sim/system.cc index de4744a5f..80aa2fb57 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -483,7 +483,7 @@ System::regStats() SimObject::regStats(); for (uint32_t j = 0; j < numWorkIds ; j++) { - workItemStats[j] = new Stats::Histogram(); + workItemStats[j] = new Stats::Histogram(this); stringstream namestr; ccprintf(namestr, "work_item_type%d", j); workItemStats[j]->init(20)