82,83d81
< clearStats();
< }
85,91c83,86
< void
< Throttle::clear()
< {
< for (int counter = 0; counter < m_vnets; counter++) {
< m_in[counter]->clear();
< m_out[counter]->clear();
< }
---
> m_msg_counts.resize(MessageSizeType_NUM);
> m_msg_bytes.resize(MessageSizeType_NUM);
>
> m_link_utilization_proxy = 0;
102,109d96
<
< m_message_counters.resize(MessageSizeType_NUM);
< for (int i = 0; i < MessageSizeType_NUM; i++) {
< m_message_counters[i].resize(in_vec.size());
< for (int j = 0; j<m_message_counters[i].size(); j++) {
< m_message_counters[i][j] = 0;
< }
< }
182c169
< m_message_counters[net_msg_ptr->getMessageSize()][vnet]++;
---
> m_msg_counts[net_msg_ptr->getMessageSize()][vnet]++;
211c198
< linkUtilized(ratio);
---
> m_link_utilization_proxy += ratio;
228c215
< Throttle::printStats(ostream& out) const
---
> Throttle::regStats(string parent)
230c217,236
< out << "utilized_percent: " << getUtilization() << endl;
---
> m_link_utilization
> .name(parent + csprintf(".throttle%i", m_node) + ".link_utilization");
>
> for (MessageSizeType type = MessageSizeType_FIRST;
> type < MessageSizeType_NUM; ++type) {
> m_msg_counts[(unsigned int)type]
> .init(m_vnets)
> .name(parent + csprintf(".throttle%i", m_node) + ".msg_count." +
> MessageSizeType_to_string(type))
> .flags(Stats::nozero)
> ;
> m_msg_bytes[(unsigned int) type]
> .name(parent + csprintf(".throttle%i", m_node) + ".msg_bytes." +
> MessageSizeType_to_string(type))
> .flags(Stats::nozero)
> ;
>
> m_msg_bytes[(unsigned int) type] = m_msg_counts[type] * Stats::constant(
> Network::MessageSizeType_to_int(type));
> }
236,243c242
< m_ruby_start = g_system_ptr->curCycle();
< m_links_utilized = 0.0;
<
< for (int i = 0; i < m_message_counters.size(); i++) {
< for (int j = 0; j < m_message_counters[i].size(); j++) {
< m_message_counters[i][j] = 0;
< }
< }
---
> m_link_utilization_proxy = 0;
246,247c245,246
< double
< Throttle::getUtilization() const
---
> void
> Throttle::collateStats()
249,250c248,249
< return 100.0 * double(m_links_utilized) /
< double(g_system_ptr->curCycle()-m_ruby_start);
---
> m_link_utilization = 100.0 * m_link_utilization_proxy
> / (double(g_system_ptr->curCycle() - g_ruby_start));