diff options
author | Tushar Krishna <tushar@csail.mit.edu> | 2011-03-21 22:51:58 -0400 |
---|---|---|
committer | Tushar Krishna <tushar@csail.mit.edu> | 2011-03-21 22:51:58 -0400 |
commit | 09c3a97a4c9aace6e2c52823679b31323cab42f6 (patch) | |
tree | d0340677be5f6cd4c10456fb70a46c1374f28e99 /src/mem/ruby/network/garnet/fixed-pipeline | |
parent | d7aa794155a46a403825f82c1ea62cd38b9de788 (diff) | |
download | gem5-09c3a97a4c9aace6e2c52823679b31323cab42f6.tar.xz |
This patch adds the network tester for simple and garnet networks.
The tester code is in testers/networktest.
The tester can be invoked by configs/example/ruby_network_test.py.
A dummy coherence protocol called Network_test is also addded for network-only simulations and testing. The protocol takes in messages from the tester and just pushes them into the network in the appropriate vnet, without storing any state.
Diffstat (limited to 'src/mem/ruby/network/garnet/fixed-pipeline')
-rw-r--r-- | src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc | 14 | ||||
-rw-r--r-- | src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc | 9 |
2 files changed, 10 insertions, 13 deletions
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc index dbfabc8f1..f0b8ccce7 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc @@ -307,15 +307,15 @@ GarnetNetwork_d::printStats(ostream& out) const } out << "-------------" << endl; - // out << "Total flits injected = " << m_flits_injected << endl; - // out << "Total flits received = " << m_flits_received << endl; + out << "Total flits injected = " << m_flits_injected << endl; + out << "Total flits received = " << m_flits_received << endl; out << "Average network latency = " << ((double) m_network_latency/ (double) m_flits_received)<< endl; - // out << "Average queueing latency = " - // << ((double) m_queueing_latency/ (double) m_flits_received)<< endl; - // out << "Average latency = " - // << ((double) (m_queueing_latency + m_network_latency) / - // (double) m_flits_received)<< endl; + out << "Average queueing (at source NI) latency = " + << ((double) m_queueing_latency/ (double) m_flits_received)<< endl; + out << "Average latency = " + << ((double) (m_queueing_latency + m_network_latency) / + (double) m_flits_received)<< endl; out << "-------------" << endl; double m_total_link_power = 0.0; diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc index 8299a294f..14105a38c 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc @@ -241,12 +241,9 @@ NetworkInterface_d::wakeup() bool free_signal = false; if (t_flit->get_type() == TAIL_ || t_flit->get_type() == HEAD_TAIL_) { free_signal = true; - // When we are doing network only testing, the messages do not - // have to be buffered into the protocol buffers - if (!m_net_ptr->isNetworkTesting()) { - outNode_ptr[t_flit->get_vnet()]-> - enqueue(t_flit->get_msg_ptr(), 1); - } + + outNode_ptr[t_flit->get_vnet()]->enqueue( + t_flit->get_msg_ptr(), 1); } // Simply send a credit back since we are not buffering // this flit in the NI |