gem5 v24.0.0.0
|
PerfEvent based timer using the host's CPU cycle counter. More...
#include <timer.hh>
Public Member Functions | |
PerfKvmTimer (PerfKvmCounter &ctr, int signo, float hostFactor, Tick hostFreq) | |
Create a timer that uses an existing hardware cycle counter. | |
~PerfKvmTimer () | |
void | arm (Tick ticks) |
Arm the timer so that it fires after a certain number of ticks. | |
void | disarm () |
Disarm the timer. | |
Public Member Functions inherited from gem5::BaseKvmTimer | |
BaseKvmTimer (int signo, float hostFactor, Tick hostFreq) | |
Setup basic timer functionality shared by all timer implementations. | |
virtual | ~BaseKvmTimer () |
virtual bool | expired () |
Tick | resolution () |
Determine the resolution of the timer in ticks. | |
Tick | ticksFromHostCycles (uint64_t cycles) |
Convert cycles executed on the host into Ticks executed in the simulator. | |
Tick | ticksFromHostNs (uint64_t ns) |
Convert nanoseconds executed on the host into Ticks executed in the simulator. | |
Protected Member Functions | |
Tick | calcResolution () |
Calculate the timer resolution, used by resolution() which caches the result. | |
Protected Member Functions inherited from gem5::BaseKvmTimer | |
uint64_t | hostNs (Tick ticks) |
Convert a time in simulator ticks to host nanoseconds. | |
uint64_t | hostCycles (Tick ticks) |
Convert a time in simulator ticks to host cycles. | |
Private Attributes | |
PerfKvmCounter & | hwOverflow |
Additional Inherited Members | |
Protected Attributes inherited from gem5::BaseKvmTimer | |
int | signo |
Signal to deliver when the timer times out. | |
PerfEvent based timer using the host's CPU cycle counter.
gem5::PerfKvmTimer::PerfKvmTimer | ( | PerfKvmCounter & | ctr, |
int | signo, | ||
float | hostFactor, | ||
Tick | hostFreq ) |
Create a timer that uses an existing hardware cycle counter.
ctr | Attached performance counter configured for overflow reporting. |
signo | Signal to deliver |
hostFactor | Performance scaling factor |
hostFreq | Clock frequency of the host |
Definition at line 171 of file timer.cc.
References gem5::PerfKvmCounter::enableSignals(), hwOverflow, and gem5::BaseKvmTimer::signo.
|
virtual |
Arm the timer so that it fires after a certain number of ticks.
ticks | Number of ticks until the timer fires |
Implements gem5::BaseKvmTimer.
Definition at line 184 of file timer.cc.
References gem5::BaseKvmTimer::hostCycles(), hwOverflow, gem5::PerfKvmCounter::period(), and gem5::PerfKvmCounter::refresh().
|
protectedvirtual |
Calculate the timer resolution, used by resolution() which caches the result.
Implements gem5::BaseKvmTimer.
Definition at line 197 of file timer.cc.
References gem5::MIN_HOST_CYCLES, and gem5::BaseKvmTimer::ticksFromHostCycles().
|
virtual |
Disarm the timer.
When this method has returned, the timer may no longer deliver signals upon timeout.
Implements gem5::BaseKvmTimer.
Definition at line 191 of file timer.cc.
References hwOverflow, and gem5::PerfKvmCounter::stop().
|
private |
Definition at line 250 of file timer.hh.
Referenced by arm(), disarm(), and PerfKvmTimer().