gem5 v24.0.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. | |
Public Member Functions inherited from gem5::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. | |
Additional Inherited Members | |
Protected Attributes inherited from gem5::PCEvent | |
std::string | description |
PCEventScope * | scope |
Addr | evpc |
Definition at line 144 of file fs_workload.hh.
|
inline |
Definition at line 147 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 gem5::ArmISA::DumpStats64.
Definition at line 301 of file fs_workload.cc.
References gem5::ThreadContext::getReg(), gem5::ArmISA::int_reg::R2, and gem5::MipsISA::ti.
Referenced by process().
|
overridevirtual |
This function is called whenever the the kernel function "__switch_to" is called to change running tasks.
Implements gem5::PCEvent.
Definition at line 341 of file fs_workload.cc.
References gem5::ccprintf(), gem5::ThreadContext::cpuId(), gem5::curTick(), gem5::ThreadContext::getCpuPtr(), gem5::ThreadContext::getSystemPtr(), getTaskDetails(), gem5::ArmISA::FsLinux::mapPid(), panic_if, gem5::statistics::schedStatEvent(), gem5::BaseCPU::setPid(), gem5::OutputStream::stream(), gem5::ArmISA::FsLinux::taskFile, gem5::BaseCPU::taskId(), gem5::ArmISA::FsLinux::taskMap, and gem5::System::workload.