gem5 v24.1.0.1
|
#include <MessageBuffer.hh>
Public Types | |
typedef MessageBufferParams | Params |
Public Types inherited from gem5::SimObject | |
typedef SimObjectParams | Params |
Public Member Functions | |
MessageBuffer (const Params &p) | |
void | reanalyzeMessages (Addr addr, Tick current_time) |
void | reanalyzeAllMessages (Tick current_time) |
void | stallMessage (Addr addr, Tick current_time) |
bool | hasStalledMsg (Addr addr) const |
bool | isReady (Tick current_time) const |
Tick | readyTime () const |
void | delayHead (Tick current_time, Tick delta, bool ruby_is_random, bool ruby_warmup) |
bool | areNSlotsAvailable (unsigned int n, Tick curTime) |
int | getPriority () |
void | setPriority (int rank) |
void | setConsumer (Consumer *consumer) |
Consumer * | getConsumer () |
bool | getOrdered () |
const Message * | peek () const |
Function for extracting the message at the head of the message queue. | |
const MsgPtr & | peekMsgPtr () const |
void | enqueue (MsgPtr message, Tick curTime, Tick delta, bool ruby_is_random, bool ruby_warmup, bool bypassStrictFIFO=false) |
void | deferEnqueueingMessage (Addr addr, MsgPtr message) |
void | enqueueDeferredMessages (Addr addr, Tick curTime, Tick delay, bool ruby_is_random, bool ruby_warmup) |
bool | isDeferredMsgMapEmpty (Addr addr) const |
Tick | dequeue (Tick current_time, bool decrement_messages=true) |
Updates the delay cycles of the message at the head of the queue, removes it from the queue and returns its total delay. | |
void | registerDequeueCallback (std::function< void()> callback) |
void | unregisterDequeueCallback () |
void | recycle (Tick current_time, Tick recycle_latency) |
bool | isEmpty () const |
bool | isStallMapEmpty () |
unsigned int | getStallMapSize () |
unsigned int | getSize (Tick curTime) |
void | clear () |
void | print (std::ostream &out) const |
void | clearStats () |
void | setIncomingLink (int link_id) |
void | setVnet (int net) |
int | getIncomingLink () const |
int | getVnet () const |
Port & | getPort (const std::string &, PortID idx=InvalidPortID) override |
Get a port with a given name and index. | |
uint32_t | functionalWrite (Packet *pkt) |
bool | functionalRead (Packet *pkt) |
bool | functionalRead (Packet *pkt, WriteMask &mask) |
int | routingPriority () const |
Public Member Functions inherited from gem5::SimObject | |
const Params & | params () const |
SimObject (const Params &p) | |
virtual | ~SimObject () |
virtual void | init () |
init() is called after all C++ SimObjects have been created and all ports are connected. | |
virtual void | loadState (CheckpointIn &cp) |
loadState() is called on each SimObject when restoring from a checkpoint. | |
virtual void | initState () |
initState() is called on each SimObject when not restoring from a checkpoint. | |
virtual void | regProbePoints () |
Register probe points for this object. | |
virtual void | regProbeListeners () |
Register probe listeners for this object. | |
ProbeManager * | getProbeManager () |
Get the probe manager for this object. | |
virtual void | startup () |
startup() is the final initialization call before simulation. | |
DrainState | drain () override |
Provide a default implementation of the drain interface for objects that don't need draining. | |
virtual void | memWriteback () |
Write back dirty buffers to memory using functional writes. | |
virtual void | memInvalidate () |
Invalidate the contents of memory buffers. | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
Public Member Functions inherited from gem5::EventManager | |
EventQueue * | eventQueue () const |
void | schedule (Event &event, Tick when) |
void | deschedule (Event &event) |
void | reschedule (Event &event, Tick when, bool always=false) |
void | schedule (Event *event, Tick when) |
void | deschedule (Event *event) |
void | reschedule (Event *event, Tick when, bool always=false) |
void | wakeupEventQueue (Tick when=(Tick) -1) |
This function is not needed by the usual gem5 event loop but may be necessary in derived EventQueues which host gem5 on other schedulers. | |
void | setCurTick (Tick newVal) |
EventManager (EventManager &em) | |
Event manger manages events in the event queue. | |
EventManager (EventManager *em) | |
EventManager (EventQueue *eq) | |
Public Member Functions inherited from gem5::Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Member Functions inherited from gem5::Drainable | |
DrainState | drainState () const |
Return the current drain state of an object. | |
virtual void | notifyFork () |
Notify a child process of a fork. | |
Public Member Functions inherited from gem5::statistics::Group | |
Group (Group *parent, const char *name=nullptr) | |
Construct a new statistics group. | |
virtual | ~Group () |
virtual void | regStats () |
Callback to set stat parameters. | |
virtual void | resetStats () |
Callback to reset stats. | |
virtual void | preDumpStats () |
Callback before stats are dumped. | |
void | addStat (statistics::Info *info) |
Register a stat with this group. | |
const std::map< std::string, Group * > & | getStatGroups () const |
Get all child groups associated with this object. | |
const std::vector< Info * > & | getStats () const |
Get all stats associated with this object. | |
void | addStatGroup (const char *name, Group *block) |
Add a stat block as a child of this block. | |
const Info * | resolveStat (std::string name) const |
Resolve a stat by its name within this group. | |
void | mergeStatGroup (Group *block) |
Merge the contents (stats & children) of a block to this block. | |
Group (const Group &)=delete | |
Group & | operator= (const Group &)=delete |
Public Member Functions inherited from gem5::Named | |
Named (const std::string &name_) | |
virtual | ~Named ()=default |
virtual std::string | name () const |
Private Types | |
typedef std::map< Addr, std::list< MsgPtr > > | StallMsgMapType |
typedef std::unordered_map< Addr, std::vector< MsgPtr > > | DeferredMsgMapType |
A map from line addresses to corresponding vectors of messages that are deferred for enqueueing. | |
Private Member Functions | |
void | reanalyzeList (std::list< MsgPtr > &, Tick) |
uint32_t | functionalAccess (Packet *pkt, bool is_read, WriteMask *mask) |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::SimObject | |
static void | serializeAll (const std::string &cpt_dir) |
Create a checkpoint by serializing all SimObjects in the system. | |
static SimObject * | find (const char *name) |
Find the SimObject with the given name and return a pointer to it. | |
static void | setSimObjectResolver (SimObjectResolver *resolver) |
There is a single object name resolver, and it is only set when simulation is restoring from checkpoints. | |
static SimObjectResolver * | getSimObjectResolver () |
There is a single object name resolver, and it is only set when simulation is restoring from checkpoints. | |
Static Public Member Functions inherited from gem5::Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
Protected Member Functions inherited from gem5::Drainable | |
Drainable () | |
virtual | ~Drainable () |
virtual void | drainResume () |
Resume execution after a successful drain. | |
void | signalDrainDone () const |
Signal that an object is drained. | |
Protected Attributes inherited from gem5::SimObject | |
const SimObjectParams & | _params |
Cached copy of the object parameters. | |
Protected Attributes inherited from gem5::EventManager | |
EventQueue * | eventq |
A pointer to this object's event queue. | |
Definition at line 74 of file MessageBuffer.hh.
|
private |
A map from line addresses to corresponding vectors of messages that are deferred for enqueueing.
Messages in this map are waiting to be enqueued into the message buffer.
Definition at line 236 of file MessageBuffer.hh.
typedef MessageBufferParams gem5::ruby::MessageBuffer::Params |
Definition at line 77 of file MessageBuffer.hh.
|
private |
Definition at line 214 of file MessageBuffer.hh.
gem5::ruby::MessageBuffer::MessageBuffer | ( | const Params & | p | ) |
Definition at line 59 of file MessageBuffer.cc.
References gem5::statistics::DataWrap< Derived, InfoProxyType >::flags(), m_avg_stall_time, m_buf_msgs, m_consumer, m_dequeue_callback, m_input_link_id, m_max_size, m_msg_count, m_msg_counter, m_msgs_this_cycle, m_not_avail_count, m_occupancy, m_priority_rank, m_size_at_cycle_start, m_size_last_time_size_checked, m_stall_count, m_stall_msg_map, m_stall_time, m_stalled_at_cycle_start, m_vnet_id, gem5::statistics::nonan, and gem5::statistics::nozero.
bool gem5::ruby::MessageBuffer::areNSlotsAvailable | ( | unsigned int | n, |
Tick | curTime | ||
) |
Definition at line 147 of file MessageBuffer.cc.
References DPRINTF, m_max_size, m_msgs_this_cycle, m_not_avail_count, m_prio_heap, m_size_at_cycle_start, m_stall_map_size, m_stalled_at_cycle_start, m_time_last_time_enqueue, m_time_last_time_pop, and gem5::ArmISA::n.
Referenced by gem5::ruby::RubyPrefetcherProxy::issuePrefetch(), gem5::ruby::Throttle::operateVnet(), and gem5::ruby::CHIGenericController::sendMessage().
void gem5::ruby::MessageBuffer::clear | ( | ) |
Definition at line 360 of file MessageBuffer.cc.
References m_msg_counter, m_msgs_this_cycle, m_prio_heap, m_size_at_cycle_start, m_stalled_at_cycle_start, m_time_last_time_enqueue, and m_time_last_time_pop.
|
inline |
Definition at line 160 of file MessageBuffer.hh.
References m_msg_counter, and m_not_avail_count.
Definition at line 474 of file MessageBuffer.cc.
References gem5::X86ISA::addr, DPRINTF, and m_deferred_msg_map.
|
inline |
Definition at line 93 of file MessageBuffer.hh.
References enqueue(), gem5::ArmISA::m, and m_prio_heap.
Updates the delay cycles of the message at the head of the queue, removes it from the queue and returns its total delay.
Definition at line 305 of file MessageBuffer.cc.
References gem5::curTick(), DPRINTF, isReady(), m_buf_msgs, m_dequeue_callback, m_dequeues_this_cy, m_msg_count, m_prio_heap, m_size_at_cycle_start, m_stall_map_size, m_stall_time, m_stalled_at_cycle_start, and m_time_last_time_pop.
Referenced by gem5::ruby::PerfectSwitch::operateMessageBuffer(), gem5::ruby::Throttle::operateVnet(), gem5::ruby::CHIGenericController::receiveAllRdyMessages(), and stallMessage().
void gem5::ruby::MessageBuffer::enqueue | ( | MsgPtr | message, |
Tick | curTime, | ||
Tick | delta, | ||
bool | ruby_is_random, | ||
bool | ruby_warmup, | ||
bool | bypassStrictFIFO = false |
||
) |
Definition at line 218 of file MessageBuffer.cc.
References DPRINTF, gem5::ruby::Message::getLastEnqueueTime(), m_allow_zero_latency, m_buf_msgs, m_consumer, m_last_arrival_time, m_last_message_strict_fifo_bypassed, m_max_size, m_msg_counter, m_msgs_this_cycle, m_prio_heap, m_randomization, m_stall_map_size, m_strict_fifo, m_time_last_time_enqueue, m_vnet_id, gem5::Named::name(), panic, panic_if, gem5::ruby::random_time(), gem5::ruby::Consumer::scheduleEventAbsolute(), gem5::ruby::Message::setLastEnqueueTime(), gem5::ruby::Message::setMsgCounter(), gem5::ruby::Consumer::storeEventInfo(), and gem5::ruby::Message::updateDelayedTicks().
Referenced by delayHead(), enqueueDeferredMessages(), gem5::ruby::Sequencer::invL1(), gem5::ruby::VIPERCoalescer::invTCC(), gem5::ruby::VIPERCoalescer::invTCP(), gem5::ruby::DMASequencer::issueNext(), gem5::ruby::RubyPrefetcherProxy::issuePrefetch(), gem5::ruby::VIPERCoalescer::issueRequest(), gem5::ruby::Sequencer::issueRequest(), gem5::ruby::DMASequencer::makeRequest(), gem5::ruby::Throttle::operateVnet(), and gem5::ruby::CHIGenericController::sendMessage().
void gem5::ruby::MessageBuffer::enqueueDeferredMessages | ( | Addr | addr, |
Tick | curTime, | ||
Tick | delay, | ||
bool | ruby_is_random, | ||
bool | ruby_warmup | ||
) |
Definition at line 482 of file MessageBuffer.cc.
References gem5::X86ISA::addr, enqueue(), isDeferredMsgMapEmpty(), gem5::ArmISA::m, and m_deferred_msg_map.
|
private |
Definition at line 543 of file MessageBuffer.cc.
References DPRINTF, gem5::ruby::Message::functionalRead(), gem5::ruby::Message::functionalWrite(), gem5::Packet::getAddr(), gem5::ArmISA::i, m_prio_heap, m_stall_msg_map, and gem5::ArmISA::mask.
Referenced by functionalRead(), functionalRead(), and functionalWrite().
|
inline |
Definition at line 186 of file MessageBuffer.hh.
References functionalAccess().
Referenced by gem5::ruby::AbstractController::functionalMemoryRead(), gem5::ruby::CHIGenericController::functionalReadBuffers(), and gem5::ruby::CHIGenericController::functionalReadBuffers().
Definition at line 192 of file MessageBuffer.hh.
References functionalAccess(), and gem5::ArmISA::mask.
|
inline |
Definition at line 177 of file MessageBuffer.hh.
References functionalAccess().
Referenced by gem5::ruby::CHIGenericController::functionalWriteBuffers().
|
inline |
Definition at line 117 of file MessageBuffer.hh.
References m_consumer.
|
inline |
Definition at line 165 of file MessageBuffer.hh.
References m_input_link_id.
Referenced by gem5::ruby::PerfectSwitch::operateMessageBuffer().
|
inline |
Definition at line 119 of file MessageBuffer.hh.
References m_strict_fifo.
Referenced by gem5::ruby::CHIGenericController::initNetQueues().
|
inlineoverridevirtual |
Get a port with a given name and index.
This is used at binding time and returns a reference to a protocol-agnostic port.
gem5 has a request and response port interface. All memory objects are connected together via ports. These ports provide a rigid interface between these memory objects. These ports implement three different memory system modes: timing, atomic, and functional. The most important mode is the timing mode and here timing mode is used for conducting cycle-level timing experiments. The other modes are only used in special circumstances and should not be used to conduct cycle-level timing experiments. The other modes are only used in special circumstances. These ports allow SimObjects to communicate with each other.
if_name | Port name |
idx | Index in the case of a VectorPort |
Reimplemented from gem5::SimObject.
Definition at line 169 of file MessageBuffer.hh.
References gem5::ruby::RubyDummyPort::instance().
|
inline |
Definition at line 104 of file MessageBuffer.hh.
References m_priority_rank.
unsigned int gem5::ruby::MessageBuffer::getSize | ( | Tick | curTime | ) |
Definition at line 136 of file MessageBuffer.cc.
References m_prio_heap, m_size_last_time_size_checked, and m_time_last_time_size_checked.
|
inline |
Definition at line 154 of file MessageBuffer.hh.
References m_stall_msg_map.
|
inline |
Definition at line 166 of file MessageBuffer.hh.
References m_vnet_id.
bool gem5::ruby::MessageBuffer::hasStalledMsg | ( | Addr | addr | ) | const |
Definition at line 468 of file MessageBuffer.cc.
References gem5::X86ISA::addr, and m_stall_msg_map.
bool gem5::ruby::MessageBuffer::isDeferredMsgMapEmpty | ( | Addr | addr | ) | const |
Definition at line 499 of file MessageBuffer.cc.
References gem5::X86ISA::addr, and m_deferred_msg_map.
Referenced by enqueueDeferredMessages().
|
inline |
Definition at line 152 of file MessageBuffer.hh.
References m_prio_heap.
bool gem5::ruby::MessageBuffer::isReady | ( | Tick | current_time | ) | const |
Definition at line 518 of file MessageBuffer.cc.
References m_consumer, m_dequeues_this_cy, m_max_dequeue_rate, m_prio_heap, m_time_last_time_pop, and gem5::ruby::Consumer::scheduleEvent().
Referenced by dequeue(), gem5::ruby::PerfectSwitch::operateMessageBuffer(), gem5::ruby::Throttle::operateVnet(), gem5::ruby::CHIGenericController::receiveAllRdyMessages(), recycle(), and stallMessage().
|
inline |
Definition at line 153 of file MessageBuffer.hh.
References m_stall_msg_map.
const Message * gem5::ruby::MessageBuffer::peek | ( | ) | const |
Function for extracting the message at the head of the message queue.
The function assumes that the queue is nonempty.
Definition at line 194 of file MessageBuffer.cc.
References DPRINTF, and m_prio_heap.
Referenced by gem5::ruby::CHIGenericController::receiveAllRdyMessages().
|
inline |
Definition at line 125 of file MessageBuffer.hh.
References m_prio_heap.
Referenced by gem5::ruby::PerfectSwitch::operateMessageBuffer(), gem5::ruby::Throttle::operateVnet(), and gem5::ruby::garnet::NetworkInterface::wakeup().
void gem5::ruby::MessageBuffer::print | ( | std::ostream & | out | ) | const |
Definition at line 505 of file MessageBuffer.cc.
References gem5::ccprintf(), m_consumer, m_prio_heap, and gem5::Named::name().
Referenced by gem5::ruby::operator<<().
Tick gem5::ruby::MessageBuffer::readyTime | ( | ) | const |
Definition at line 534 of file MessageBuffer.cc.
References m_prio_heap, and gem5::MaxTick.
Referenced by gem5::ruby::PerfectSwitch::operateVnet().
void gem5::ruby::MessageBuffer::reanalyzeAllMessages | ( | Tick | current_time | ) |
Definition at line 427 of file MessageBuffer.cc.
References DPRINTF, m_stall_map_size, m_stall_msg_map, and reanalyzeList().
Definition at line 389 of file MessageBuffer.cc.
References DPRINTF, gem5::PowerISA::lt, gem5::ArmISA::m, m_consumer, m_prio_heap, and gem5::ruby::Consumer::scheduleEventAbsolute().
Referenced by reanalyzeAllMessages(), and reanalyzeMessages().
Definition at line 409 of file MessageBuffer.cc.
References gem5::X86ISA::addr, DPRINTF, m_stall_map_size, m_stall_msg_map, and reanalyzeList().
Referenced by gem5::ruby::AbstractController::wakeUpBuffer().
Definition at line 373 of file MessageBuffer.cc.
References DPRINTF, isReady(), m_consumer, m_prio_heap, and gem5::ruby::Consumer::scheduleEventAbsolute().
void gem5::ruby::MessageBuffer::registerDequeueCallback | ( | std::function< void()> | callback | ) |
Definition at line 348 of file MessageBuffer.cc.
References m_dequeue_callback.
|
inline |
Definition at line 197 of file MessageBuffer.hh.
References m_routing_priority.
Referenced by gem5::ruby::PerfectSwitch::updatePriorityGroups().
|
inline |
Definition at line 106 of file MessageBuffer.hh.
References DPRINTF, fatal, and m_consumer.
Referenced by gem5::ruby::Throttle::addLinks(), gem5::ruby::AbstractController::init(), and gem5::ruby::CHIGenericController::init().
|
inline |
Definition at line 162 of file MessageBuffer.hh.
References m_input_link_id.
|
inline |
Definition at line 105 of file MessageBuffer.hh.
References m_priority_rank.
|
inline |
Definition at line 163 of file MessageBuffer.hh.
References m_vnet_id.
Definition at line 447 of file MessageBuffer.cc.
References gem5::X86ISA::addr, dequeue(), DPRINTF, isReady(), m_prio_heap, m_stall_count, m_stall_map_size, and m_stall_msg_map.
void gem5::ruby::MessageBuffer::unregisterDequeueCallback | ( | ) |
Definition at line 354 of file MessageBuffer.cc.
References m_dequeue_callback.
|
private |
Definition at line 283 of file MessageBuffer.hh.
Referenced by enqueue().
|
private |
Definition at line 296 of file MessageBuffer.hh.
Referenced by MessageBuffer().
|
private |
Definition at line 293 of file MessageBuffer.hh.
Referenced by dequeue(), enqueue(), and MessageBuffer().
|
private |
Consumer to signal a wakeup(), can be NULL.
Definition at line 207 of file MessageBuffer.hh.
Referenced by enqueue(), getConsumer(), isReady(), MessageBuffer(), print(), reanalyzeList(), recycle(), and setConsumer().
|
private |
Definition at line 237 of file MessageBuffer.hh.
Referenced by deferEnqueueingMessage(), enqueueDeferredMessages(), and isDeferredMsgMapEmpty().
|
private |
Definition at line 210 of file MessageBuffer.hh.
Referenced by dequeue(), MessageBuffer(), registerDequeueCallback(), and unregisterDequeueCallback().
|
private |
Definition at line 261 of file MessageBuffer.hh.
|
private |
Definition at line 287 of file MessageBuffer.hh.
Referenced by getIncomingLink(), MessageBuffer(), and setIncomingLink().
|
private |
Definition at line 270 of file MessageBuffer.hh.
Referenced by enqueue().
|
private |
Definition at line 279 of file MessageBuffer.hh.
Referenced by enqueue().
|
private |
When != 0, isReady returns false once m_max_dequeue_rate messages have been dequeued in the same cycle.
Definition at line 259 of file MessageBuffer.hh.
Referenced by isReady().
|
private |
The maximum capacity.
For finite-sized buffers, m_max_size stores a number greater than 0 to indicate the maximum allowed number of messages in the buffer at any time. To get infinitely-sized buffers, set buffer size: m_max_size = 0
Definition at line 253 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), enqueue(), and MessageBuffer().
|
private |
Definition at line 292 of file MessageBuffer.hh.
Referenced by dequeue(), and MessageBuffer().
|
private |
Definition at line 276 of file MessageBuffer.hh.
Referenced by clear(), clearStats(), enqueue(), and MessageBuffer().
|
private |
Definition at line 274 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clear(), enqueue(), and MessageBuffer().
|
private |
Definition at line 291 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clearStats(), and MessageBuffer().
|
private |
Definition at line 297 of file MessageBuffer.hh.
Referenced by MessageBuffer().
|
private |
Definition at line 208 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clear(), delayHead(), dequeue(), enqueue(), functionalAccess(), getSize(), isEmpty(), isReady(), peek(), peekMsgPtr(), print(), readyTime(), reanalyzeList(), recycle(), and stallMessage().
|
private |
Definition at line 277 of file MessageBuffer.hh.
Referenced by getPriority(), MessageBuffer(), and setPriority().
|
private |
Definition at line 282 of file MessageBuffer.hh.
Referenced by enqueue().
|
private |
Definition at line 285 of file MessageBuffer.hh.
Referenced by routingPriority().
|
private |
Definition at line 272 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clear(), dequeue(), and MessageBuffer().
|
private |
Definition at line 264 of file MessageBuffer.hh.
Referenced by getSize(), and MessageBuffer().
|
private |
Definition at line 295 of file MessageBuffer.hh.
Referenced by MessageBuffer(), and stallMessage().
|
private |
Current size of the stall map.
Track the number of messages held in stall map lists. This is used to ensure that if the buffer is finite-sized, it blocks further requests when the m_prio_heap and m_stall_msg_map contain m_max_size messages.
Definition at line 245 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), dequeue(), enqueue(), reanalyzeAllMessages(), reanalyzeMessages(), and stallMessage().
|
private |
A map from line addresses to lists of stalled messages for that line.
If this buffer allows the receiver to stall messages, on a stall request, the stalled message is removed from the m_prio_heap and placed in the m_stall_msg_map. Messages are held there until the receiver requests they be reanalyzed, at which point they are moved back to m_prio_heap.
NOTE: The stall map holds messages in the order in which they were initially received, and when a line is unblocked, the messages are moved back to the m_prio_heap in the same order. This prevents starving older requests with younger ones.
Definition at line 229 of file MessageBuffer.hh.
Referenced by functionalAccess(), getStallMapSize(), hasStalledMsg(), isStallMapEmpty(), MessageBuffer(), reanalyzeAllMessages(), reanalyzeMessages(), and stallMessage().
|
private |
Definition at line 294 of file MessageBuffer.hh.
Referenced by dequeue(), and MessageBuffer().
|
private |
Definition at line 273 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clear(), dequeue(), and MessageBuffer().
|
private |
Definition at line 281 of file MessageBuffer.hh.
Referenced by enqueue(), and getOrdered().
|
private |
Definition at line 268 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clear(), and enqueue().
|
private |
Definition at line 269 of file MessageBuffer.hh.
Referenced by areNSlotsAvailable(), clear(), dequeue(), and isReady().
|
private |
Definition at line 263 of file MessageBuffer.hh.
Referenced by getSize().
|
private |
Definition at line 288 of file MessageBuffer.hh.
Referenced by enqueue(), getVnet(), MessageBuffer(), and setVnet().