gem5
v20.0.0.2
|
Public Member Functions | |
SyncSwitch (int num_nodes) | |
~SyncSwitch () | |
bool | run (bool same_tick) override |
Core method to perform a full dist sync. More... | |
bool | progress (Tick max_req_tick, Tick next_repeat, ReqType do_ckpt, ReqType do_exit, ReqType do_stop_sync) override |
Callback when the receiver thread gets a sync ack message. More... | |
void | requestCkpt (ReqType) override |
void | requestExit (ReqType) override |
void | requestStopSync (ReqType) override |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
![]() | |
void | init (Tick start, Tick repeat) |
Initialize periodic sync params. More... | |
void | abort () |
Abort processing an on-going sync event (in case of an error, e.g. More... | |
void | drainComplete () |
![]() | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Private Attributes | |
unsigned | numExitReq |
Counter for recording exit requests. More... | |
unsigned | numCkptReq |
Counter for recording ckpt requests. More... | |
unsigned | numStopSyncReq |
Counter for recording stop sync requests. More... | |
unsigned | numNodes |
Number of connected simulated nodes. More... | |
Additional Inherited Members | |
![]() | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
static void | unserializeGlobals (CheckpointIn &cp) |
![]() | |
std::mutex | lock |
The lock to protect access to the Sync object. More... | |
std::condition_variable | cv |
Condition variable for the simulation thread to wait on until all receiver threads completes the current global synchronisation. More... | |
unsigned | waitNum |
Number of receiver threads that not yet completed the current global synchronisation. More... | |
bool | doExit |
Flag is set if exit is permitted upon sync completion. More... | |
bool | doCkpt |
Flag is set if taking a ckpt is permitted upon sync completion. More... | |
bool | doStopSync |
Flag is set if sync is to stop upon sync completion. More... | |
Tick | nextRepeat |
The repeat value for the next periodic sync. More... | |
Tick | nextAt |
Tick for the next periodic sync (if the event is not scheduled yet) More... | |
bool | isAbort |
Flag is set if the sync is aborted (e.g. More... | |
Definition at line 238 of file dist_iface.hh.
DistIface::SyncSwitch::SyncSwitch | ( | int | num_nodes | ) |
Definition at line 94 of file dist_iface.cc.
|
inline |
Definition at line 260 of file dist_iface.hh.
References DistIface::Sync::progress(), and DistIface::Sync::run().
|
overridevirtual |
Callback when the receiver thread gets a sync ack message.
Implements DistIface::Sync.
Definition at line 199 of file dist_iface.cc.
References X86ISA::lock.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements DistIface::Sync.
Definition at line 275 of file dist_iface.hh.
References panic, DistIface::Sync::serialize(), and DistIface::Sync::unserialize().
|
overridevirtual |
Core method to perform a full dist sync.
Implements DistIface::Sync.
Definition at line 156 of file dist_iface.cc.
References curTick(), header, X86ISA::lock, DistHeaderPkt::Header::msgType, DistHeaderPkt::Header::needCkpt, DistHeaderPkt::Header::needExit, DistHeaderPkt::Header::needStopSync, Stats::none, DistIface::sendCmd(), DistHeaderPkt::Header::sendTick, and DistHeaderPkt::Header::syncRepeat.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements DistIface::Sync.
Definition at line 319 of file dist_iface.cc.
References SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements DistIface::Sync.
Definition at line 325 of file dist_iface.cc.
References UNSERIALIZE_SCALAR.
|
private |
Counter for recording ckpt requests.
Definition at line 248 of file dist_iface.hh.
|
private |
Counter for recording exit requests.
Definition at line 244 of file dist_iface.hh.
|
private |
Number of connected simulated nodes.
Definition at line 256 of file dist_iface.hh.
|
private |
Counter for recording stop sync requests.
Definition at line 252 of file dist_iface.hh.