|
gem5
v21.0.1.0
|
#include <Throttle.hh>
Classes | |
| struct | ThrottleStats |
Public Member Functions | |
| Throttle (int sID, RubySystem *rs, NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth, Switch *em) | |
| ~Throttle () | |
| std::string | name () |
| void | addLinks (const std::vector< MessageBuffer * > &in_vec, const std::vector< MessageBuffer * > &out_vec) |
| void | wakeup () |
| const Stats::Scalar & | getUtilization () const |
| const Stats::Vector & | getMsgCount (unsigned int type) const |
| int | getLinkBandwidth () const |
| Cycles | getLatency () const |
| void | clearStats () |
| void | collateStats () |
| void | regStats () |
| void | print (std::ostream &out) const |
Public Member Functions inherited from Consumer | |
| Consumer (ClockedObject *_em) | |
| virtual | ~Consumer () |
| virtual void | storeEventInfo (int info) |
| bool | alreadyScheduled (Tick time) |
| ClockedObject * | getObject () |
| void | scheduleEventAbsolute (Tick timeAbs) |
| void | scheduleEvent (Cycles timeDelta) |
Private Member Functions | |
| void | init (NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth) |
| void | operateVnet (int vnet, int &bw_remainin, bool &schedule_wakeup, MessageBuffer *in, MessageBuffer *out) |
| Throttle (const Throttle &obj) | |
| Throttle & | operator= (const Throttle &obj) |
Private Attributes | |
| std::vector< MessageBuffer * > | m_in |
| std::vector< MessageBuffer * > | m_out |
| unsigned int | m_vnets |
| std::vector< int > | m_units_remaining |
| const int | m_switch_id |
| Switch * | m_switch |
| NodeID | m_node |
| int | m_link_bandwidth_multiplier |
| Cycles | m_link_latency |
| int | m_wakeups_wo_switch |
| int | m_endpoint_bandwidth |
| RubySystem * | m_ruby_system |
| double | m_link_utilization_proxy |
| Throttle::ThrottleStats | throttleStats |
Definition at line 52 of file Throttle.hh.
| Throttle::Throttle | ( | int | sID, |
| RubySystem * | rs, | ||
| NodeID | node, | ||
| Cycles | link_latency, | ||
| int | link_bandwidth_multiplier, | ||
| int | endpoint_bandwidth, | ||
| Switch * | em | ||
| ) |
Definition at line 49 of file Throttle.cc.
References m_endpoint_bandwidth, m_link_bandwidth_multiplier, m_link_latency, m_link_utilization_proxy, m_vnets, and m_wakeups_wo_switch.
|
inline |
Definition at line 58 of file Throttle.hh.
|
private |
| void Throttle::addLinks | ( | const std::vector< MessageBuffer * > & | in_vec, |
| const std::vector< MessageBuffer * > & | out_vec | ||
| ) |
Definition at line 70 of file Throttle.cc.
References m_in, m_node, m_out, m_switch_id, m_units_remaining, m_vnets, MessageBuffer::setConsumer(), and sc_dt::to_string().
| void Throttle::clearStats | ( | ) |
Definition at line 230 of file Throttle.cc.
References m_link_utilization_proxy.
| void Throttle::collateStats | ( | ) |
Definition at line 236 of file Throttle.cc.
References Clocked::curCycle(), RubySystem::getStartCycle(), Throttle::ThrottleStats::m_link_utilization, m_link_utilization_proxy, m_ruby_system, and throttleStats.
|
inline |
Definition at line 76 of file Throttle.hh.
References m_link_latency.
|
inline |
Definition at line 73 of file Throttle.hh.
References m_endpoint_bandwidth, and m_link_bandwidth_multiplier.
Referenced by operateVnet(), print(), and wakeup().
|
inline |
Definition at line 70 of file Throttle.hh.
References Throttle::ThrottleStats::m_msg_counts, throttleStats, and X86ISA::type.
|
inline |
Definition at line 68 of file Throttle.hh.
References Throttle::ThrottleStats::m_link_utilization, and throttleStats.
|
private |
Referenced by regStats().
|
inline |
Definition at line 60 of file Throttle.hh.
References csprintf(), and m_switch_id.
|
private |
Definition at line 92 of file Throttle.cc.
References MessageBuffer::areNSlotsAvailable(), Clocked::clockEdge(), Clocked::curCycle(), Clocked::cyclesToTicks(), MessageBuffer::dequeue(), DPRINTF, MessageBuffer::enqueue(), getLinkBandwidth(), Message::getMessageSize(), MessageBuffer::isReady(), m_link_latency, m_node, m_ruby_system, m_switch, m_units_remaining, network_message_to_size(), MessageBuffer::peekMsgPtr(), and throttleStats.
Referenced by wakeup().
|
virtual |
Implements Consumer.
Definition at line 246 of file Throttle.cc.
References ccprintf(), getLinkBandwidth(), and m_node.
Referenced by operator<<().
| void Throttle::regStats | ( | ) |
Definition at line 204 of file Throttle.cc.
References Stats::constant(), csprintf(), Network::getNumberOfVirtualNetworks(), init(), Throttle::ThrottleStats::m_msg_bytes, Throttle::ThrottleStats::m_msg_counts, Network::MessageSizeType_to_int(), Stats::nozero, throttleStats, and X86ISA::type.
|
virtual |
Implements Consumer.
Definition at line 148 of file Throttle.cc.
References DPRINTF, getLinkBandwidth(), m_in, m_link_utilization_proxy, m_out, m_vnets, m_wakeups_wo_switch, operateVnet(), PRIORITY_SWITCH_LIMIT, and Consumer::scheduleEvent().
|
private |
Definition at line 105 of file Throttle.hh.
Referenced by getLinkBandwidth(), and Throttle().
|
private |
Definition at line 93 of file Throttle.hh.
Referenced by addLinks(), and wakeup().
|
private |
Definition at line 102 of file Throttle.hh.
Referenced by getLinkBandwidth(), and Throttle().
|
private |
Definition at line 103 of file Throttle.hh.
Referenced by getLatency(), operateVnet(), and Throttle().
|
private |
Definition at line 108 of file Throttle.hh.
Referenced by clearStats(), collateStats(), Throttle(), and wakeup().
|
private |
Definition at line 100 of file Throttle.hh.
Referenced by addLinks(), operateVnet(), and print().
|
private |
Definition at line 94 of file Throttle.hh.
Referenced by addLinks(), and wakeup().
|
private |
Definition at line 106 of file Throttle.hh.
Referenced by collateStats(), and operateVnet().
|
private |
Definition at line 99 of file Throttle.hh.
Referenced by operateVnet().
|
private |
Definition at line 98 of file Throttle.hh.
Referenced by addLinks(), and name().
|
private |
Definition at line 96 of file Throttle.hh.
Referenced by addLinks(), and operateVnet().
|
private |
Definition at line 95 of file Throttle.hh.
Referenced by addLinks(), Throttle(), and wakeup().
|
private |
Definition at line 104 of file Throttle.hh.
Referenced by Throttle(), and wakeup().
|
private |
Referenced by collateStats(), getMsgCount(), getUtilization(), operateVnet(), and regStats().