track the idle_thread() function in the kernel, so that we can know if we are idle during a run.
kern/tru64/tru64_system.cc:
autogen for new tracked function
add to fn name map
kern/tru64/tru64_system.hh:
autogen
--HG--
extra : convert_revision : 322d54df3070824a039085dc3742660c82cf750d
This commit is contained in:
@@ -185,6 +185,9 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param,
|
||||
esTxeofBin = new Statistics::MainBin(name() + " es_txeof");
|
||||
fnBins.insert(make_pair("es_txeof", esTxeofBin));
|
||||
|
||||
idleThreadBin = new Statistics::MainBin(name() + " idle_thread");
|
||||
fnBins.insert(make_pair("idle_thread", idleThreadBin));
|
||||
|
||||
}
|
||||
//INSTRUMENTATION CODEGEN END
|
||||
#endif //FS_MEASURE
|
||||
@@ -236,6 +239,7 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param,
|
||||
esStartEvent = new FnEvent(&pcEventQueue, "es_start", this);
|
||||
esTransmitEvent = new FnEvent(&pcEventQueue, "es_transmit", this);
|
||||
esTxeofEvent = new FnEvent(&pcEventQueue, "es_txeof", this);
|
||||
idleThreadEvent = new FnEvent(&pcEventQueue, "idle_thread", this);
|
||||
}
|
||||
//INSTRUMENTATION CODEGEN END
|
||||
#endif //FS_MEASURE
|
||||
@@ -444,6 +448,11 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param,
|
||||
else
|
||||
panic("could not find kernel symbol \'es_txeof\'");
|
||||
|
||||
if (kernelSymtab->findAddress("idle_thread", addr))
|
||||
idleThreadEvent->schedule(addr);
|
||||
else
|
||||
panic("could not find kernel symbol \'idle_thread\'");
|
||||
|
||||
}
|
||||
//INSTRUMENTATION CODEGEN END
|
||||
if (bin == true) {
|
||||
@@ -488,6 +497,8 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param,
|
||||
populateMap("es_transmit", "es_start");
|
||||
|
||||
populateMap("es_txeof", "es_intr");
|
||||
|
||||
populateMap("idle_thread", "");
|
||||
}
|
||||
#endif //FS_MEASURE
|
||||
}
|
||||
@@ -543,6 +554,7 @@ Tru64System::~Tru64System()
|
||||
delete esStartEvent;
|
||||
delete esTransmitEvent;
|
||||
delete esTxeofEvent;
|
||||
delete idleThreadEvent;
|
||||
}
|
||||
//INSTRUMENTATION CODEGEN END
|
||||
#endif //FS_MEASURE
|
||||
|
||||
@@ -94,6 +94,7 @@ class Tru64System : public System
|
||||
Statistics::MainBin *esStartBin;
|
||||
Statistics::MainBin *esTransmitBin;
|
||||
Statistics::MainBin *esTxeofBin;
|
||||
Statistics::MainBin *idleThreadBin;
|
||||
//INSTRUMENTATION CODEGEN END
|
||||
#endif //FS_MEASURE
|
||||
|
||||
@@ -138,6 +139,7 @@ class Tru64System : public System
|
||||
FnEvent *esStartEvent;
|
||||
FnEvent *esTransmitEvent;
|
||||
FnEvent *esTxeofEvent;
|
||||
FnEvent *idleThreadEvent;
|
||||
//INSTRUMENTATION CODEGEN END
|
||||
#endif //FS_MEASURE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user