gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
Linux::SkipUDelay< Base > Class Template Reference

A class to skip udelay() and related calls in the kernel. More...

#include <events.hh>

Inheritance diagram for Linux::SkipUDelay< Base >:

Public Member Functions

 SkipUDelay (PCEventScope *s, const std::string &desc, Addr addr, uint64_t mult, uint64_t div)
 
void process (ThreadContext *tc) override
 

Private Attributes

uint64_t argDivToNs
 Value to divide arg by to create ns. More...
 
uint64_t argMultToNs
 Value to multiple arg by to create ns. More...
 

Detailed Description

template<typename Base>
class Linux::SkipUDelay< Base >

A class to skip udelay() and related calls in the kernel.

This class has two additional parameters that take the argument to udelay and manipulated it to come up with ns and eventually ticks to quiesce for. See descriptions of argDivToNs and argMultToNs below.

Definition at line 132 of file events.hh.

Constructor & Destructor Documentation

◆ SkipUDelay()

template<typename Base >
Linux::SkipUDelay< Base >::SkipUDelay ( PCEventScope s,
const std::string &  desc,
Addr  addr,
uint64_t  mult,
uint64_t  div 
)
inline

Definition at line 151 of file events.hh.

Member Function Documentation

◆ process()

template<typename Base >
void Linux::SkipUDelay< Base >::process ( ThreadContext tc)
inlineoverride

Member Data Documentation

◆ argDivToNs

template<typename Base >
uint64_t Linux::SkipUDelay< Base >::argDivToNs
private

Value to divide arg by to create ns.

This is present beacues the linux kernel code sometime precomputes the first multiply that is done in udelay() if the parameter is a constant. We need to undo it so here is how.

Definition at line 141 of file events.hh.

Referenced by Linux::SkipUDelay< Base >::process().

◆ argMultToNs

template<typename Base >
uint64_t Linux::SkipUDelay< Base >::argMultToNs
private

Value to multiple arg by to create ns.

Nominally, this is 1000 to convert us to ns, but since linux can do some preprocessing of constant values something else might be required.

Definition at line 148 of file events.hh.

Referenced by Linux::SkipUDelay< Base >::process().


The documentation for this class was generated from the following file:

Generated on Wed Sep 30 2020 14:03:06 for gem5 by doxygen 1.8.17