gem5
v20.1.0.0
|
#include <fs_workload.hh>
Public Member Functions | |
DumpStats (PCEventScope *s, const std::string &desc, Addr addr) | |
void | process (ThreadContext *tc) override |
This function is called whenever the the kernel function "__switch_to" is called to change running tasks. More... | |
Public Member Functions inherited from PCEvent | |
PCEvent (PCEventScope *q, const std::string &desc, Addr pc) | |
virtual | ~PCEvent () |
virtual const std::string | name () const |
std::string | descr () const |
Addr | pc () const |
bool | remove () |
Protected Member Functions | |
virtual void | getTaskDetails (ThreadContext *tc, uint32_t &pid, uint32_t &tgid, std::string &next_task_str, int32_t &mm) |
Extracts the information used by the DumpStatsPCEvent by reading the thread_info pointer passed to __switch_to() in 32 bit ARM Linux. More... | |
Additional Inherited Members | |
Protected Attributes inherited from PCEvent | |
std::string | description |
PCEventScope * | scope |
Addr | evpc |
Definition at line 147 of file fs_workload.hh.
|
inline |
Definition at line 150 of file fs_workload.hh.
|
protectedvirtual |
Extracts the information used by the DumpStatsPCEvent by reading the thread_info pointer passed to __switch_to() in 32 bit ARM Linux.
r0 = task_struct of the previously running process r1 = thread_info of the previously running process r2 = thread_info of the next process to run
Reimplemented in ArmISA::DumpStats64.
Definition at line 279 of file fs_workload.cc.
References ThreadContext::readIntReg(), and MipsISA::ti.
Referenced by process().
|
overridevirtual |
This function is called whenever the the kernel function "__switch_to" is called to change running tasks.
Implements PCEvent.
Definition at line 319 of file fs_workload.cc.
References ccprintf(), ThreadContext::cpuId(), curTick(), ThreadContext::getCpuPtr(), ThreadContext::getSystemPtr(), getTaskDetails(), ArmISA::FsLinux::mapPid(), panic_if, Stats::schedStatEvent(), BaseCPU::setPid(), OutputStream::stream(), ArmISA::FsLinux::taskFile, BaseCPU::taskId(), ArmISA::FsLinux::taskMap, and System::workload.