gem5  v21.0.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Functions | Variables
eventq.cc File Reference
#include "sim/eventq.hh"
#include <cassert>
#include <iostream>
#include <mutex>
#include <string>
#include <unordered_map>
#include <vector>
#include "base/logging.hh"
#include "base/trace.hh"
#include "cpu/smt.hh"
#include "debug/Checkpoint.hh"
#include "sim/core.hh"

Go to the source code of this file.

Functions

EventQueuegetEventQueue (uint32_t index)
 Function for returning eventq queue for the provided index. More...
 
void dumpMainQueue ()
 

Variables

Tick simQuantum = 0
 Simulation Quantum for multiple eventq simulation. More...
 
uint32_t numMainEventQueues = 0
 Current number of allocated main event queues. More...
 
std::vector< EventQueue * > mainEventQueue
 Array for main event queues. More...
 
__thread EventQueue_curEventQueue = NULL
 The current event queue for the running thread. More...
 
bool inParallelMode = false
 Current mode of execution: parallel / serial. More...
 

Function Documentation

◆ dumpMainQueue()

void dumpMainQueue ( )

Definition at line 362 of file eventq.cc.

References ArmISA::i, mainEventQueue, and numMainEventQueues.

◆ getEventQueue()

EventQueue* getEventQueue ( uint32_t  index)

Function for returning eventq queue for the provided index.

The function allocates a new queue in case one does not exist for the index, provided that the index is with in bounds.

Definition at line 60 of file eventq.cc.

References csprintf(), MipsISA::index, mainEventQueue, and numMainEventQueues.

Referenced by dumprstStatsHandler(), dumpStatsHandler(), exitNowHandler(), StatTest::init(), ioHandler(), pybind_init_event(), and PollQueue::setupAsyncIO().

Variable Documentation

◆ _curEventQueue

__thread EventQueue* _curEventQueue = NULL

The current event queue for the running thread.

Access to this queue does not require any locking from the thread.

Definition at line 56 of file eventq.cc.

Referenced by curEventQueue().

◆ inParallelMode

bool inParallelMode = false

Current mode of execution: parallel / serial.

Definition at line 57 of file eventq.cc.

Referenced by EventQueue::deschedule(), EventQueue::reschedule(), EventQueue::schedule(), and simulate().

◆ mainEventQueue

std::vector<EventQueue *> mainEventQueue

◆ numMainEventQueues

uint32_t numMainEventQueues = 0

◆ simQuantum

Tick simQuantum = 0

Simulation Quantum for multiple eventq simulation.

The quantum value is the period length after which the queues synchronize themselves with each other. This means that any event to scheduled on Queue A which is generated by an event on Queue B should be at least simQuantum ticks away in future.

Definition at line 46 of file eventq.cc.

Referenced by exitSimLoop(), Stats::schedStatEvent(), and simulate().


Generated on Tue Jun 22 2021 15:28:34 for gem5 by doxygen 1.8.17