41 #ifndef __ARCH_ARM_LINUX_FS_WORKLOAD_HH__
42 #define __ARCH_ARM_LINUX_FS_WORKLOAD_HH__
54 #include "params/ArmFsLinux.hh"
65 using SkipFunc::SkipFunc;
72 using SkipFunc::SkipFunc;
154 uint32_t &tgid, std::string &next_task_str, int32_t &
mm);
165 std::string &next_task_str, int32_t &
mm)
override;
void getTaskDetails(ThreadContext *tc, uint32_t &pid, uint32_t &tgid, std::string &next_task_str, int32_t &mm) override
Extracts the information used by the DumpStatsPCEvent64 by reading the task_struct pointer passed to ...
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 __...
void process(ThreadContext *tc) override
This function is called whenever the the kernel function "__switch_to" is called to change running ta...
DumpStats(PCEventScope *s, const std::string &desc, Addr addr)
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
PCEvent * kernelPanic
Event to halt the simulator if the kernel calls panic()
bool enableContextSwitchStatsDump
When enabled, dump stats/task info on context switches for Streamline and per-thread cache occupancy ...
std::map< uint32_t, uint32_t > taskMap
This map stores a mapping of OS process IDs to internal Task IDs.
PCEvent * skipConstUDelay
Another PC based skip event for const_udelay().
PCEvent * debugPrintk
PC based event to skip the dprink() call and emulate its functionality.
void startup() override
startup() is the final initialization call before simulation.
PARAMS(ArmFsLinux)
Boilerplate params code.
OutputStream * taskFile
This is a file that is placed in the run directory that prints out mappings between taskIds and OS pr...
void dumpDmesg()
Dump the kernel's dmesg buffer to stdout.
PCEvent * kernelOops
Event to halt the simulator if the kernel calls oopses
PCEvent * skipUDelay
PC based event to skip udelay(<time>) calls and quiesce the processor for the appropriate amount of t...
void mapPid(ThreadContext *tc, uint32_t pid)
This function creates a new task Id for the given pid.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.