[gem5-dev] changeset in web-graphics: Resize topology figure

2011-05-31 Thread Tushar Krishna
changeset c1a85b596072 in /z/repo/web-graphics
details: web-graphics?cmd=changeset;node=c1a85b596072
description:
Resize topology figure

diffstat:

 ruby/figures/Topology_overview.jpg |0 
 1 files changed, 0 insertions(+), 0 deletions(-)

diffs (2 lines):

diff -r 8b47475cd2b3 -r c1a85b596072 ruby/figures/Topology_overview.jpg
Binary file ruby/figures/Topology_overview.jpg has changed
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] changeset in web-graphics: network: updated topology figure

2011-05-31 Thread Tushar Krishna
changeset 8b47475cd2b3 in /z/repo/web-graphics
details: web-graphics?cmd=changeset;node=8b47475cd2b3
description:
network: updated topology figure

diffstat:

 ruby/figures/Topology_overview.jpg |0 
 1 files changed, 0 insertions(+), 0 deletions(-)

diffs (2 lines):

diff -r 1f62f3ea6275 -r 8b47475cd2b3 ruby/figures/Topology_overview.jpg
Binary file ruby/figures/Topology_overview.jpg has changed
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] Unable to upload figures to wiki

2011-05-31 Thread Tushar Krishna

Thanks Ali.
This is the repo right?
h...@m5sim.org/web-graphics

And how do I point to the images in the repo from the wiki?

Thanks,
Tushar


On 5/31/2011 2:13 PM, Ali Saidi wrote:

Upload graphics using the repository not the wiki interface.

Thanks,
Ali


On Tue, 31 May 2011 13:41:48 -0400, Tushar Krishna 
 wrote:

Hi Nate,
I am unable to upload new figures to the wiki.

I get this upload warning:
The upload directory (public) is not writable by the webserver.

Does this have something to do with permissions?

Thanks,
Tushar
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] Unable to upload figures to wiki

2011-05-31 Thread Tushar Krishna

Hi Nate,
I am unable to upload new figures to the wiki.

I get this upload warning:
The upload directory (public) is not writable by the webserver.

Does this have something to do with permissions?

Thanks,
Tushar
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] changeset in m5: orion: bug fix in link power, and some reorg

2011-05-30 Thread Tushar Krishna
changeset 681497e0356b in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=681497e0356b
description:
orion: bug fix in link power, and some reorg

diffstat:

 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc |   3 +
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh|   2 +
 src/mem/ruby/network/orion/NetworkPower.cc|  42 ++
 3 files changed, 29 insertions(+), 18 deletions(-)

diffs (183 lines):

diff -r 24a00a6d5992 -r 681497e0356b 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Tue May 
31 02:55:14 2011 -0400
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Tue May 
31 02:56:22 2011 -0400
@@ -327,6 +327,7 @@
 double m_total_router_power = 0.0;
 double m_dynamic_router_power = 0.0;
 double m_static_router_power = 0.0;
+double m_clk_power = 0.0;
 
 for (int i = 0; i < m_link_ptr_vector.size(); i++) {
 m_total_link_power += m_link_ptr_vector[i]->calculate_power();
@@ -338,11 +339,13 @@
 m_total_router_power += m_router_ptr_vector[i]->calculate_power();
 m_dynamic_router_power += m_router_ptr_vector[i]->get_dynamic_power();
 m_static_router_power += m_router_ptr_vector[i]->get_static_power();
+m_clk_power += m_router_ptr_vector[i]->get_clk_power();
 }
 out << "Link Dynamic Power = " << m_dynamic_link_power << " W" << endl;
 out << "Link Static Power = " << m_static_link_power << " W" << endl;
 out << "Total Link Power = " << m_total_link_power << " W " << endl;
 out << "Router Dynamic Power = " << m_dynamic_router_power << " W" << endl;
+out << "Router Clock Power = " << m_clk_power << " W" << endl;
 out << "Router Static Power = " << m_static_router_power << " W" << endl;
 out << "Total Router Power = " << m_total_router_power << " W " getRubyStartTime();
+sim_cycles =
+g_eventQueue_ptr->getTime() - m_network_ptr->getRubyStartTime();
 
 // Number of virtual networks/message classes declared in Ruby
 // maybe greater than active virtual networks.
@@ -88,7 +89,8 @@
 for (int i = 0; i < m_virtual_networks; i++) {
 if (active_vclass_ary[i]) {
 int temp_vc = i*m_vc_per_vnet;
-vclass_type_ary.push_back((uint32_t) 
m_network_ptr->get_vnet_type(temp_vc));
+vclass_type_ary.push_back((uint32_t) 
+m_network_ptr->get_vnet_type(temp_vc));
 }
 }
 assert(vclass_type_ary.size() == num_active_vclass);
@@ -97,7 +99,7 @@
 uint32_t in_buf_per_data_vc = m_network_ptr->getBuffersPerDataVC();
 uint32_t in_buf_per_ctrl_vc = m_network_ptr->getBuffersPerCtrlVC();
 //flit width in bits
-uint32_t flit_width = m_network_ptr->getNiFlitSize() * 8; 
+uint32_t flit_width_bits = m_network_ptr->getNiFlitSize() * 8; 
 
 orion_rtr_ptr = new OrionRouter(
 num_in_port,
@@ -107,7 +109,7 @@
 num_vc_per_vclass,
 in_buf_per_data_vc,
 in_buf_per_ctrl_vc,
-flit_width,
+flit_width_bits,
 orion_cfg_ptr
 );
 
@@ -120,7 +122,6 @@
 double Psw_arb_local_dyn = 0.0;
 double Psw_arb_global_dyn = 0.0;
 double Pxbar_dyn = 0.0;
-double Pclk_dyn = 0.0;
 double Ptotal_dyn = 0.0;
 
 double Pbuf_sta = 0.0;
@@ -178,7 +179,7 @@
 // Switch Allocation Local
 // Each input port chooses one input VC as requestor
 // Arbiter size: num_vclass*num_vc_per_vclass:1
-Psw_arb_local_dyn +=
+Psw_arb_local_dyn =
 orion_rtr_ptr->calc_dynamic_energy_local_sw_arb(
 num_vclass*num_vc_per_vclass/2, false)*
 (sw_local_arbit_count/sim_cycles)*
@@ -187,28 +188,27 @@
 // Switch Allocation Global
 // Each output port chooses one input port as winner
 // Arbiter size: num_in_port:1
-Psw_arb_global_dyn +=
+Psw_arb_global_dyn =
 orion_rtr_ptr->calc_dynamic_energy_global_sw_arb(
 num_in_port/2, false)*
 (sw_global_arbit_count/sim_cycles)*
 freq_Hz;
 
 // Crossbar
-Pxbar_dyn +=
+Pxbar_dyn =
 orion_rtr_ptr->calc_dynamic_energy_xbar(false)*
 (crossbar_count/sim_cycles)*freq_Hz;
 
-// Clock
-Pclk_dyn += orion_rtr_ptr->calc_dynamic_energy_clock()*freq_Hz;
-
 // Total
 Ptotal_dyn = Pbuf_wr_dyn + Pbuf_rd_dyn +
  Pvc_arb_local_dyn + Pvc_arb_global_dyn +
  Psw_arb_local_dyn + Psw_arb_global_dyn +
- Pxbar_dyn +
- Pclk_dyn;
+ Pxbar_dyn;
 
 m_power_dyn = Ptotal_dyn;
+
+// Clock Power
+m_clk_power = orion_rtr_ptr->calc_dynamic_energy_clock()*freq_Hz;
 
 // Static Power
 Pbuf_sta = orion_rtr_ptr->get_static_power_buf();
@@ -220,7 +220,7 @@
 
 m_power_sta = Ptotal_sta;
 
-Ptotal = Ptotal_dyn + Ptotal_sta;
+Ptotal = m_power_

[gem5-dev] changeset in m5: garnet: added network ptr to links to be used b...

2011-05-30 Thread Tushar Krishna
changeset 24a00a6d5992 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=24a00a6d5992
description:
garnet: added network ptr to links to be used by orion

diffstat:

 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc |  7 +++
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh   |  7 ++-
 src/mem/ruby/network/orion/NetworkPower.cc|  8 ++--
 3 files changed, 15 insertions(+), 7 deletions(-)

diffs (58 lines):

diff -r 03cfd2ecf6bb -r 24a00a6d5992 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sun May 
29 21:48:58 2011 -0700
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Tue May 
31 02:55:14 2011 -0400
@@ -90,6 +90,13 @@
 }
 // false because this isn't a reconfiguration
 m_topology_ptr->createLinks(this, false);
+
+// initialize the link's network pointers
+   for (vector::const_iterator i = m_link_ptr_vector.begin();
+ i != m_link_ptr_vector.end(); ++i) {
+NetworkLink_d* net_link = safe_cast(*i);
+net_link->init_net_ptr(this);
+}
 }
 
 GarnetNetwork_d::~GarnetNetwork_d()
diff -r 03cfd2ecf6bb -r 24a00a6d5992 
src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh   Sun May 
29 21:48:58 2011 -0700
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh   Tue May 
31 02:55:14 2011 -0400
@@ -65,12 +65,17 @@
 inline bool isReady()   { return linkBuffer->isReady(); }
 inline flit_d* peekLink()   { return linkBuffer->peekTopFlit(); }
 inline flit_d* consumeLink(){ return linkBuffer->getTopFlit(); }
+void init_net_ptr(GarnetNetwork_d* net_ptr)
+{
+m_net_ptr = net_ptr;
+}
 
   protected:
 int m_id;
 int m_latency;
+int channel_width;
 
-int channel_width;
+GarnetNetwork_d *m_net_ptr;
 flitBuffer_d *linkBuffer;
 Consumer *link_consumer;
 flitBuffer_d *link_srcQueue;
diff -r 03cfd2ecf6bb -r 24a00a6d5992 src/mem/ruby/network/orion/NetworkPower.cc
--- a/src/mem/ruby/network/orion/NetworkPower.ccSun May 29 21:48:58 
2011 -0700
+++ b/src/mem/ruby/network/orion/NetworkPower.ccTue May 31 02:55:14 
2011 -0400
@@ -245,13 +245,9 @@
 channel_width/* channel width */,
 orion_cfg_ptr);
 
-//
-//  NOTE!  I believe this calculation will be moved to McPAT, thus this
-//  reference to the net_ptr can be removed
-//
 //// Dynamic Power
-double sim_cycles = 0.0;
-// (double)(g_eventQueue_ptr->getTime() - 
m_net_ptr->getRubyStartTime());
+double sim_cycles =
+(double)(g_eventQueue_ptr->getTime() - m_net_ptr->getRubyStartTime());
 
 double Plink_dyn = orion_link_ptr->calc_dynamic_energy(channel_width/2)*
 (m_link_utilized/ sim_cycles)*freq_Hz;
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] possible bug in ruby/common/Set.hh

2011-05-27 Thread Tushar Krishna

Thanks Korey.
Yeah inability to run > 32 cores on 32-bit machines, and inability to 
run > 64 cores on 64-bit machines is the same issue, so I guess the STL 
bitsets solution should fix this problem too.


Thanks,
Tushar

On 5/28/2011 2:34 AM, Korey Sewell wrote:

Tushar,
There should be an earlier thread about this issue (or one very similar). A
symptom of this issue is the inability to run large systems on 32-bit
machines.

I think what we wanted to do is use STL bitsets here (check that thread for
details). I would do it myself but I wont have time until after the tutorial
for Ruby optimizations.

Could you check that thread and let us know whether that would or would not
solve this problem?

On Sat, May 28, 2011 at 2:21 AM, Tushar Krishnawrote:


Hi all,

I think src/mem/ruby/common/Set.hh has a bug.

It has the following lines:
static const int LONG_BITS = std::numeric_limits::digits;
static const int INDEX_SHIFT = LONG_BITS == 64 ? 6 : 5;

Since "long" by default is signed, LONG_BITS will always be 31 or 63,
depending on the machine (not 32 or 64).
This means that INDEX_SHIFT will always be set to 5.

I tried setting --num-cpus to 128 and ran a tester, and observed a bunch of
glibc errors.
A gdb backtrace pointed me to Set.hh (via ruby/common/NetDest.hh).
I changed "long" to "unsigned long" and that fixed the issue.

Is this a fine fix and should I send out a patch?

Thanks,
Tushar


___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev





___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] possible bug in ruby/common/Set.hh

2011-05-27 Thread Tushar Krishna

Hi all,

I think src/mem/ruby/common/Set.hh has a bug.

It has the following lines:
static const int LONG_BITS = std::numeric_limits::digits;
static const int INDEX_SHIFT = LONG_BITS == 64 ? 6 : 5;

Since "long" by default is signed, LONG_BITS will always be 31 or 63, 
depending on the machine (not 32 or 64).

This means that INDEX_SHIFT will always be set to 5.

I tried setting --num-cpus to 128 and ran a tester, and observed a bunch 
of glibc errors.

A gdb backtrace pointed me to Set.hh (via ruby/common/NetDest.hh).
I changed "long" to "unsigned long" and that fixed the issue.

Is this a fine fix and should I send out a patch?

Thanks,
Tushar


___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] Review Request: orion: bug fix in link power, and some reorg

2011-05-23 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/712/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

orion: bug fix in link power, and some reorg


Diffs
-

  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 3f37cc5d25bc 
  src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh 3f37cc5d25bc 
  src/mem/ruby/network/orion/NetworkPower.cc 3f37cc5d25bc 

Diff: http://reviews.m5sim.org/r/712/diff


Testing
---


Thanks,

Tushar

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] Review Request: garnet: add network ptr to links

2011-05-23 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/711/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

garnet: added network ptr to links to be used by orion


Diffs
-

  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 3f37cc5d25bc 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh 3f37cc5d25bc 
  src/mem/ruby/network/orion/NetworkPower.cc 3f37cc5d25bc 

Diff: http://reviews.m5sim.org/r/711/diff


Testing
---


Thanks,

Tushar

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] Review Request: config: tweak ruby configs to clean up hierarchy

2011-05-23 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/709/#review1253
---


Hi Steve,
I think you will also have to make similar changes in 
configs/ruby/Network_test.py

-Tushar

- Tushar


On 2011-05-23 09:23:34, Steve Reinhardt wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/709/
> ---
> 
> (Updated 2011-05-23 09:23:34)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> config: tweak ruby configs to clean up hierarchy
> 
> Re-enabling implicit parenting (see previous patch) causes current
> Ruby config scripts to create some strange hierarchies and generate
> several warnings.  This patch makes three general changes to address
> these issues.
> 
> 1. The order of object creation in the ruby config files makes the L1
>caches children of the sequencer rather than the controller; these
>config ciles are rewritten to assign the L1 caches to the
>controller first.
> 
> 2. The assignment of the sequencer list to system.ruby.cpu_ruby_ports
>causes the sequencers to be children of system.ruby, generating
>warnings because they are already parented to their respective
>controllers.  Changing this attribute to _cpu_ruby_ports fixes this
>because the leading underscore means this is now treated as a plain
>Python attribute rather than a child assignment. As a result, the
>configuration hierarchy changes such that, e.g.,
>system.ruby.cpu_ruby_ports0 becomes system.l1_cntrl0.sequencer.
> 
> 3. In the topology classes, the routers become children of some random
>internal link node rather than direct children of the topology.
>The topology classes are rewritten to assign the routers to the
>topology object first.
> 
> [Note: the "previous patch" referred to above is 
> http://reviews.m5sim.org/r/608 ,
> which will be the previous patch when I commit these.]
> 
> 
> Diffs
> -
> 
>   configs/example/ruby_direct_test.py 7f106d0bd638 
>   configs/example/ruby_fs.py 7f106d0bd638 
>   configs/example/ruby_mem_test.py 7f106d0bd638 
>   configs/example/ruby_network_test.py 7f106d0bd638 
>   configs/example/ruby_random_test.py 7f106d0bd638 
>   configs/example/se.py 7f106d0bd638 
>   configs/ruby/MESI_CMP_directory.py 7f106d0bd638 
>   configs/ruby/MI_example.py 7f106d0bd638 
>   configs/ruby/MOESI_CMP_directory.py 7f106d0bd638 
>   configs/ruby/MOESI_CMP_token.py 7f106d0bd638 
>   configs/ruby/MOESI_hammer.py 7f106d0bd638 
>   configs/ruby/Ruby.py 7f106d0bd638 
>   src/mem/ruby/network/topologies/Crossbar.py 7f106d0bd638 
>   src/mem/ruby/network/topologies/Mesh.py 7f106d0bd638 
>   src/mem/ruby/network/topologies/MeshDirCorners.py 7f106d0bd638 
>   src/mem/ruby/network/topologies/Pt2Pt.py 7f106d0bd638 
>   src/mem/ruby/network/topologies/Torus.py 7f106d0bd638 
>   tests/configs/memtest-ruby.py 7f106d0bd638 
>   tests/configs/rubytest-ruby.py 7f106d0bd638 
>   tests/configs/simple-timing-mp-ruby.py 7f106d0bd638 
>   tests/configs/simple-timing-ruby.py 7f106d0bd638 
> 
> Diff: http://reviews.m5sim.org/r/709/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Steve
> 
>

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] changeset in m5: garnet: use vnet_type from protocol to decide b...

2011-05-20 Thread Tushar Krishna
changeset 1eaa1fbd2212 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=1eaa1fbd2212
description:
garnet: use vnet_type from protocol to decide buffer depths

The virtual channels within "response" vnets are made 
buffers_per_data_vc
deep (default=4), while virtual channels within other vnets are made
buffers_per_ctrl_vc deep (default = 1). This is for accurate power 
estimates.

diffstat:

 src/mem/ruby/network/garnet/NetworkHeader.hh |   2 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc|  31 
+
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh|  10 +--
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc |   6 -
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc   |  10 +-
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh   |   9 --
 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc   |   1 -
 7 files changed, 24 insertions(+), 45 deletions(-)

diffs (177 lines):

diff -r de2451e66935 -r 1eaa1fbd2212 
src/mem/ruby/network/garnet/NetworkHeader.hh
--- a/src/mem/ruby/network/garnet/NetworkHeader.hh  Sat May 21 00:00:54 
2011 -0400
+++ b/src/mem/ruby/network/garnet/NetworkHeader.hh  Sat May 21 00:40:57 
2011 -0400
@@ -36,7 +36,7 @@
 
 enum flit_type {HEAD_, BODY_, TAIL_, HEAD_TAIL_, NUM_FLIT_TYPE_};
 enum VC_state_type {IDLE_, VC_AB_, ACTIVE_, NUM_VC_STATE_TYPE_};
-enum VNET_type {CTRL_VNET_, DATA_VNET_, NUM_VNET_TYPE_};
+enum VNET_type {CTRL_VNET_, DATA_VNET_, NULL_VNET_, NUM_VNET_TYPE_};
 enum flit_stage {I_, VA_, SA_, ST_, LT_, NUM_FLIT_STAGE_};
 
 #define INFINITE_ 1
diff -r de2451e66935 -r 1eaa1fbd2212 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sat May 
21 00:00:54 2011 -0400
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sat May 
21 00:40:57 2011 -0400
@@ -52,6 +52,11 @@
 m_buffers_per_data_vc = p->buffers_per_data_vc;
 m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc;
 
+m_vnet_type.resize(m_virtual_networks);
+for (int i = 0; i < m_vnet_type.size(); i++) {
+m_vnet_type[i] = NULL_VNET_; // default
+}
+
 // record the routers
 for (vector::const_iterator i = 
  m_topology_ptr->params()->routers.begin();
@@ -85,12 +90,6 @@
 }
 // false because this isn't a reconfiguration
 m_topology_ptr->createLinks(this, false);
-
-m_vnet_type.resize(m_virtual_networks);
-for (int i = 0; i < m_vnet_type.size(); i++) {
-m_vnet_type[i] = CTRL_VNET_;
-// DATA_VNET_ updated later based on traffic
-}
 }
 
 GarnetNetwork_d::~GarnetNetwork_d()
@@ -215,7 +214,8 @@
 
 void
 GarnetNetwork_d::checkNetworkAllocation(NodeID id, bool ordered,
-int network_num)
+int network_num,
+string vnet_type)
 {
 assert(id < m_nodes);
 assert(network_num < m_virtual_networks);
@@ -224,25 +224,26 @@
 m_ordered[network_num] = true;
 }
 m_in_use[network_num] = true;
+
+if (vnet_type == "response")
+m_vnet_type[network_num] = DATA_VNET_; // carries data (and ctrl) 
packets
+else
+m_vnet_type[network_num] = CTRL_VNET_; // carries only ctrl packets
 }
 
 MessageBuffer*
 GarnetNetwork_d::getToNetQueue(NodeID id, bool ordered, int network_num,
-   std::string vnet_type)
+   string vnet_type)
 {
-// TODO:
-//if (vnet_type == "response")
-//mark vnet as data vnet and use buffers_per_data_vc
-
-checkNetworkAllocation(id, ordered, network_num);
+checkNetworkAllocation(id, ordered, network_num, vnet_type);
 return m_toNetQueues[id][network_num];
 }
 
 MessageBuffer*
 GarnetNetwork_d::getFromNetQueue(NodeID id, bool ordered, int network_num,  
- std::string vnet_type)
+ string vnet_type)
 {
-checkNetworkAllocation(id, ordered, network_num);
+checkNetworkAllocation(id, ordered, network_num, vnet_type);
 return m_fromNetQueues[id][network_num];
 }
 
diff -r de2451e66935 -r 1eaa1fbd2212 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Sat May 
21 00:00:54 2011 -0400
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Sat May 
21 00:40:57 2011 -0400
@@ -73,13 +73,6 @@
 void printConfig(std::ostream& out) const;
 void print(std::ostream& out) const;
 
-void
-set_vnet_type(int vc, VNET_type vnet_type)
-{
-int vnet = vc/getVCsPerVnet();
-m_vnet_type[vnet] = vnet_type;
-}
-
 VNET_type
 get_vnet_type(int vc)
 {
@@ -124,7 +117,8 @@
   bool isReconfiguration);
 
   private:
-void checkNetworkAllocation(NodeID id, bool orde

[gem5-dev] changeset in m5: configs: remove -p from ruby_network_test.py

2011-05-20 Thread Tushar Krishna
changeset de2451e66935 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=de2451e66935
description:
configs: remove -p from ruby_network_test.py

A recent patch broke the ruby network tester by adding -p inside 
Options.py
which conflicts with the -p inside ruby_network_test.py.
Have removed -p from ruby_network_test.py

diffstat:

 configs/example/ruby_network_test.py |  8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diffs (19 lines):

diff -r 7b42aba8e5f2 -r de2451e66935 configs/example/ruby_network_test.py
--- a/configs/example/ruby_network_test.py  Fri May 20 14:49:06 2011 -0400
+++ b/configs/example/ruby_network_test.py  Sat May 21 00:00:54 2011 -0400
@@ -65,11 +65,11 @@
help="Number of simulation cycles")
 
 parser.add_option("--fixed-pkts", action="store_true",
-  help="Network_test: send only -p number of packets")
+  help="Network_test: inject --maxpackets and stop")
 
-parser.add_option("-p", "--maxpackets", type="int", default=1,
-  metavar="P",
-  help="Stop after Packets (works only with --fixed-pkts")
+parser.add_option("--maxpackets", type="int", default=1,
+  help="Stop injecting after --maxpackets. \
+Works only with --fixed-pkts")
 
 #
 # Add the ruby specific and protocol specific options
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] Cron /z/m5/regression/do-regression quick

2011-05-20 Thread Tushar Krishna

Sorry about that. Just checked in a patch which should fix it.
Had added "vnet_type" to all protocols, but forgot to add it to MI_example.
And its default build does not use RUBY so I missed catching it earlier.


On 5/20/2011 4:35 AM, Gabe Black wrote:

The regressions are failing with the error below. This suggests one of
Tushar Krishna's two recent commits is either bad or requires a clean
build. Would you please look into it, Tushar?

Gabe

SLICC Generator pass 1...
SLICC Generator pass 2...
MI_example-dir.sm:197: Warning: Unused action: a_sendWriteBackAck, Send
writeback ack to requestor
SLICC writing C++ files...
KeyError: 'vnet_type':
   File "/z/m5/regression/zizzer/m5/SConstruct", line 980:
 exports = 'env')
   File "/usr/lib/scons/SCons/Script/SConscript.py", line 596:
 return apply(method, args, kw)
   File "/usr/lib/scons/SCons/Script/SConscript.py", line 533:
 return apply(_SConscript, [self.fs,] + files, subst_kw)
   File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
 exec _file_ in call_stack[-1].globals
   File "/z/m5/regression/zizzer/m5/build/ALPHA_SE/SConscript", line 318:
 SConscript(joinpath(root, 'SConscript'), variant_dir=build_dir)
   File "/usr/lib/scons/SCons/Script/SConscript.py", line 596:
 return apply(method, args, kw)
   File "/usr/lib/scons/SCons/Script/SConscript.py", line 533:
 return apply(_SConscript, [self.fs,] + files, subst_kw)
   File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
 exec _file_ in call_stack[-1].globals
   File
"/z/m5/regression/zizzer/m5/build/ALPHA_SE/mem/protocol/SConscript",
line 134:
 nodes = env.SLICC([], [ Value(protocol) ] + sources)
   File "/usr/lib/scons/SCons/Environment.py", line 219:
 return apply(MethodWrapper.__call__, (self, target, source) + args, kw)
   File "/usr/lib/scons/SCons/Environment.py", line 183:
 return apply(self.method, nargs, kwargs)
   File "/usr/lib/scons/SCons/Builder.py", line 614:
 return self._execute(env, target, source, OverrideWarner(kw), ekw)
   File "/usr/lib/scons/SCons/Builder.py", line 561:
 tlist, slist = self._create_nodes(env, target, source)
   File "/usr/lib/scons/SCons/Builder.py", line 525:
 target, source = self.emitter(target=tlist, source=slist, env=env)
   File
"/z/m5/regression/zizzer/m5/build/ALPHA_SE/mem/protocol/SConscript",
line 89:
 slicc.writeCodeFiles(pdir)
   File "/z/m5/regression/zizzer/m5/src/mem/slicc/parser.py", line 117:
 self.symtab.writeCodeFiles(code_path)
   File
"/z/m5/regression/zizzer/m5/src/mem/slicc/symbols/SymbolTable.py", line 139:
 symbol.writeCodeFiles(path)
   File
"/z/m5/regression/zizzer/m5/src/mem/slicc/symbols/StateMachine.py", line
163:
 self.printControllerCC(path)
   File
"/z/m5/regression/zizzer/m5/src/mem/slicc/symbols/StateMachine.py", line
597:
 vnet_type = var["vnet_type"]
   File "/z/m5/regression/zizzer/m5/src/mem/slicc/util.py", line 47:
 return self.pairs[item]
Child returned 2
When attemping to execute: scons --ignore-style -k USE_MYSQL=no
EXTRAS=/z/m5/regression/zizzer/encumbered RUBY=True -j 7 -Q
build/ALPHA_SE/tests/opt/quick
build/ALPHA_SE_MOESI_hammer/tests/opt/quick
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick
build/ALPHA_FS/tests/opt/quick build/MIPS_SE/tests/opt/quick
build/POWER_SE/tests/opt/quick build/SPARC_SE/tests/opt/quick
build/X86_SE/tests/opt/quick build/X86_FS/tests/opt/quick
build/ARM_SE/tests/opt/quick build/ARM_FS/tests/opt/quick

On 05/20/11 00:00, Cron Daemon wrote:

See /z/m5/regression/regress-2011-05-20-03:00:01 for details.

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev

___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] changeset in m5: slicc: added vnet_type to MI_example

2011-05-20 Thread Tushar Krishna
changeset adb2d5f7407d in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=adb2d5f7407d
description:
slicc: added vnet_type to MI_example

Forgot to add this to MI_example in my previous patch.

diffstat:

 src/mem/protocol/MI_example-cache.sm |   8 
 src/mem/protocol/MI_example-dir.sm   |  10 +-
 src/mem/protocol/MI_example-dma.sm   |   4 ++--
 3 files changed, 11 insertions(+), 11 deletions(-)

diffs (54 lines):

diff -r d1ce92fd3245 -r adb2d5f7407d src/mem/protocol/MI_example-cache.sm
--- a/src/mem/protocol/MI_example-cache.sm  Wed May 18 11:06:23 2011 -0700
+++ b/src/mem/protocol/MI_example-cache.sm  Fri May 20 05:06:43 2011 -0400
@@ -7,11 +7,11 @@
 {
 
   // NETWORK BUFFERS
-  MessageBuffer requestFromCache, network="To", virtual_network="2", 
ordered="true";
-  MessageBuffer responseFromCache, network="To", virtual_network="4", 
ordered="true";
+  MessageBuffer requestFromCache, network="To", virtual_network="2", 
ordered="true", vnet_type="request";
+  MessageBuffer responseFromCache, network="To", virtual_network="4", 
ordered="true", vnet_type="response";
 
-  MessageBuffer forwardToCache, network="From", virtual_network="3", 
ordered="true";
-  MessageBuffer responseToCache, network="From", virtual_network="4", 
ordered="true";
+  MessageBuffer forwardToCache, network="From", virtual_network="3", 
ordered="true", vnet_type="forward";
+  MessageBuffer responseToCache, network="From", virtual_network="4", 
ordered="true", vnet_type="response";
 
   // STATES
   state_declaration(State, desc="Cache states") {
diff -r d1ce92fd3245 -r adb2d5f7407d src/mem/protocol/MI_example-dir.sm
--- a/src/mem/protocol/MI_example-dir.smWed May 18 11:06:23 2011 -0700
+++ b/src/mem/protocol/MI_example-dir.smFri May 20 05:06:43 2011 -0400
@@ -5,12 +5,12 @@
   int directory_latency = 12
 {
 
-  MessageBuffer forwardFromDir, network="To", virtual_network="3", 
ordered="false";
-  MessageBuffer responseFromDir, network="To", virtual_network="4", 
ordered="false";
-  MessageBuffer dmaResponseFromDir, network="To", virtual_network="1", 
ordered="true";
+  MessageBuffer forwardFromDir, network="To", virtual_network="3", 
ordered="false", vnet_type="forward";
+  MessageBuffer responseFromDir, network="To", virtual_network="4", 
ordered="false", vnet_type="response";
+  MessageBuffer dmaResponseFromDir, network="To", virtual_network="1", 
ordered="true", vnet_type="response";
 
-  MessageBuffer requestToDir, network="From", virtual_network="2", 
ordered="true";
-  MessageBuffer dmaRequestToDir, network="From", virtual_network="0", 
ordered="true";
+  MessageBuffer requestToDir, network="From", virtual_network="2", 
ordered="true", vnet_type="request";
+  MessageBuffer dmaRequestToDir, network="From", virtual_network="0", 
ordered="true", vnet_type="request";
 
   // STATES
   state_declaration(State, desc="Directory states", 
default="Directory_State_I") {
diff -r d1ce92fd3245 -r adb2d5f7407d src/mem/protocol/MI_example-dma.sm
--- a/src/mem/protocol/MI_example-dma.smWed May 18 11:06:23 2011 -0700
+++ b/src/mem/protocol/MI_example-dma.smFri May 20 05:06:43 2011 -0400
@@ -4,8 +4,8 @@
   int request_latency = 6
 {
 
-  MessageBuffer responseFromDir, network="From", virtual_network="1", 
ordered="true", no_vector="true";
-  MessageBuffer reqToDirectory, network="To", virtual_network="0", 
ordered="false", no_vector="true";
+  MessageBuffer responseFromDir, network="From", virtual_network="1", 
ordered="true", vnet_type="response", no_vector="true";
+  MessageBuffer reqToDirectory, network="To", virtual_network="0", 
ordered="false", vnet_type="request", no_vector="true";
 
   state_declaration(State, desc="DMA states", default="DMA_State_READY") {
 READY, AccessPermission:Invalid, desc="Ready to accept a new request";
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] changeset in m5: slicc: added vnet_type field to identify respon...

2011-05-18 Thread Tushar Krishna
changeset 79cf09f5a234 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=79cf09f5a234
description:
slicc: added vnet_type field to identify response vnets from others

Identifying response vnets versus other vnets will allow garnet to
determine which vnets will carry data packets, and which will carry
ctrl packets, and use appropriate buffer sizes (since data packets are 
larger
than ctrl packets). This in turn allows the orion power model to 
accurately
estimate buffer power.

diffstat:

 src/mem/protocol/MESI_CMP_directory-L1cache.sm |  10 +++---
 src/mem/protocol/MESI_CMP_directory-L2cache.sm |  14 
 src/mem/protocol/MESI_CMP_directory-dir.sm |   8 ++--
 src/mem/protocol/MESI_CMP_directory-dma.sm |   4 +-
 src/mem/protocol/MOESI_CMP_directory-L1cache.sm|  10 +++---
 src/mem/protocol/MOESI_CMP_directory-L2cache.sm|  14 
 src/mem/protocol/MOESI_CMP_directory-dir.sm|  12 +++---
 src/mem/protocol/MOESI_CMP_directory-dma.sm|  12 +++---
 src/mem/protocol/MOESI_CMP_token-L1cache.sm|  12 +++---
 src/mem/protocol/MOESI_CMP_token-L2cache.sm|  14 
 src/mem/protocol/MOESI_CMP_token-dir.sm|  16 +-
 src/mem/protocol/MOESI_CMP_token-dma.sm|   4 +-
 src/mem/protocol/MOESI_hammer-cache.sm |  10 +++---
 src/mem/protocol/MOESI_hammer-dir.sm   |  14 
 src/mem/protocol/MOESI_hammer-dma.sm   |   4 +-
 src/mem/protocol/Network_test-cache.sm |   6 +-
 src/mem/protocol/Network_test-dir.sm   |   6 +-
 src/mem/ruby/network/Network.hh|   4 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |  10 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh  |   6 ++-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |   6 ++-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh |   6 ++-
 src/mem/ruby/network/simple/SimpleNetwork.cc   |   6 ++-
 src/mem/ruby/network/simple/SimpleNetwork.hh   |   4 +-
 src/mem/slicc/symbols/StateMachine.py  |   3 +-
 25 files changed, 115 insertions(+), 100 deletions(-)

diffs (truncated from 531 to 300 lines):

diff -r 76f7c2858c5c -r 79cf09f5a234 
src/mem/protocol/MESI_CMP_directory-L1cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L1cache.smWed May 18 03:04:14 
2011 -0400
+++ b/src/mem/protocol/MESI_CMP_directory-L1cache.smWed May 18 03:06:07 
2011 -0400
@@ -39,17 +39,17 @@
   // NODE L1 CACHE
   // From this node's L1 cache TO the network
   // a local L1 -> this L2 bank, currently ordered with directory forwarded 
requests
-  MessageBuffer requestFromL1Cache, network="To", virtual_network="0", 
ordered="false";
+  MessageBuffer requestFromL1Cache, network="To", virtual_network="0", 
ordered="false", vnet_type="request";
   // a local L1 -> this L2 bank
-  MessageBuffer responseFromL1Cache, network="To", virtual_network="1", 
ordered="false";
-  MessageBuffer unblockFromL1Cache, network="To", virtual_network="2", 
ordered="false";
+  MessageBuffer responseFromL1Cache, network="To", virtual_network="1", 
ordered="false", vnet_type="response";
+  MessageBuffer unblockFromL1Cache, network="To", virtual_network="2", 
ordered="false", vnet_type="unblock";
 
 
   // To this node's L1 cache FROM the network
   // a L2 bank -> this L1
-  MessageBuffer requestToL1Cache, network="From", virtual_network="0", 
ordered="false";
+  MessageBuffer requestToL1Cache, network="From", virtual_network="0", 
ordered="false", vnet_type="request";
   // a L2 bank -> this L1
-  MessageBuffer responseToL1Cache, network="From", virtual_network="1", 
ordered="false";
+  MessageBuffer responseToL1Cache, network="From", virtual_network="1", 
ordered="false", vnet_type="response";
 
   // STATES
   state_declaration(State, desc="Cache states", default="L1Cache_State_I") {
diff -r 76f7c2858c5c -r 79cf09f5a234 
src/mem/protocol/MESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L2cache.smWed May 18 03:04:14 
2011 -0400
+++ b/src/mem/protocol/MESI_CMP_directory-L2cache.smWed May 18 03:06:07 
2011 -0400
@@ -40,15 +40,15 @@
 {
   // L2 BANK QUEUES
   // From local bank of L2 cache TO the network
-  MessageBuffer DirRequestFromL2Cache, network="To", virtual_network="0", 
ordered="false";  // this L2 bank -> Memory
-  MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", 
ordered="false";  // this L2 bank -> a local L1
-  MessageBuffer responseFromL2Cache, network="To", virtual_network="1", 
ordered="false";  // this L2 bank -> a local L1 || Memory
+  MessageBuffer DirRequestFromL2Cache, netwo

[gem5-dev] changeset in m5: garnet: rename and rearrange config parameters.

2011-05-18 Thread Tushar Krishna
changeset 76f7c2858c5c in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=76f7c2858c5c
description:
garnet: rename and rearrange config parameters.

Renamed (message) class to vnet for consistency with rest of ruby.
Moved some parameters specific to fixed/flexible garnet networks into 
their
corresponding py files.

diffstat:

 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  |   5 +---
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  |  10 +--
 src/mem/ruby/network/garnet/BaseGarnetNetwork.py  |   5 +---
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py|   4 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc |  13 
++---
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh |  10 ++-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py |   3 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py  |   4 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc  |   2 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc   |   4 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc|   2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py   |   4 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc|  11 ---
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh|   2 +
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py|   2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py |   4 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc |   2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc  |   2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc   |   2 +-
 19 files changed, 46 insertions(+), 45 deletions(-)

diffs (truncated from 347 to 300 lines):

diff -r fb0e525008c5 -r 76f7c2858c5c 
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Fri May 13 17:29:27 
2011 -0500
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Wed May 18 03:04:14 
2011 -0400
@@ -37,10 +37,7 @@
 : Network(p)
 {
 m_ni_flit_size = p->ni_flit_size;
-m_number_of_pipe_stages = p->number_of_pipe_stages;
-m_vcs_per_class = p->vcs_per_class;
-m_buffers_per_data_vc = p->buffers_per_data_vc;
-m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc;
+m_vcs_per_vnet = p->vcs_per_vnet;
 
 m_ruby_start = 0;
 m_flits_received = 0;
diff -r fb0e525008c5 -r 76f7c2858c5c 
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Fri May 13 17:29:27 
2011 -0500
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Wed May 18 03:04:14 
2011 -0400
@@ -49,17 +49,11 @@
 
 void init();
 int getNiFlitSize() {return m_ni_flit_size; }
-int getNumPipeStages() {return m_number_of_pipe_stages; }
-int getVCsPerClass() {return m_vcs_per_class; }
-int getBuffersPerDataVC() {return m_buffers_per_data_vc; }
-int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; }
+int getVCsPerVnet() {return m_vcs_per_vnet; }
 
   protected:
 int m_ni_flit_size;
-int m_number_of_pipe_stages;
-int m_vcs_per_class;
-int m_buffers_per_data_vc;
-int m_buffers_per_ctrl_vc;
+int m_vcs_per_vnet;
 
 int m_flits_received;
 int m_flits_injected;
diff -r fb0e525008c5 -r 76f7c2858c5c 
src/mem/ruby/network/garnet/BaseGarnetNetwork.py
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.py  Fri May 13 17:29:27 
2011 -0500
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.py  Wed May 18 03:04:14 
2011 -0400
@@ -35,7 +35,4 @@
 type = 'BaseGarnetNetwork'
 abstract = True
 ni_flit_size = Param.Int(16, "network interface flit size in bytes")
-number_of_pipe_stages = Param.Int(4, "router pipeline stages");
-vcs_per_class = Param.Int(4, "virtual channels per message class");
-buffers_per_data_vc = Param.Int(4, "buffers per data virtual channel");
-buffers_per_ctrl_vc = Param.Int(1, "buffers per ctrl virtual channel");
+vcs_per_vnet = Param.Int(4, "virtual channels per virtual network");
diff -r fb0e525008c5 -r 76f7c2858c5c 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.pyFri May 
13 17:29:27 2011 -0500
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.pyWed May 
18 03:04:14 2011 -0400
@@ -37,8 +37,8 @@
 type = 'NetworkLink_d'
 link_id = Param.Int(Parent.link_id, "link id")
 link_latency = Param.Int(Parent.latency, "link latency")
-vcs_per_class = Param.Int(Parent.vcs_per_class,
-  "virtual channels per message class")
+vcs_per_vnet = Param.Int(Parent.vcs_per_vnet,
+  "virtual channels per virtual network")
 virt_nets = Param.Int(Parent.num

Re: [m5-dev] Review Request: slicc: added vnet_type field to identify response vnets from others

2011-05-09 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/686/#review1218
---


Hey Brad,
We will need some way for the total number of virtual networks declared in 
these protocol files to be reflected in one of the network simobject.py files, 
so that the config.ini file prints out the correct value for virtual networks. 
Currently it prints out the default value of 10 from Network.py, though the 
actual number of active vnets is lower.
Just to let you know while you review this patch since the change for that 
might be related ...

Thanks

- Tushar


On 2011-05-08 21:09:50, Tushar Krishna wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/686/
> ---
> 
> (Updated 2011-05-08 21:09:50)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
> Binkert, and Brad Beckmann.
> 
> 
> Summary
> ---
> 
> slicc: added vnet_type field to identify response vnets from others
> 
> Identifying response vnets versus other vnets will allow garnet to
> determine which vnets will carry data packets, and which will carry
> ctrl packets, and use appropriate buffer sizes (since data packets are larger
> than ctrl packets). This in turn allows the orion power model to accurately
> estimate buffer power.
> 
> 
> Diffs
> -
> 
>   src/mem/protocol/MESI_CMP_directory-L1cache.sm db269e704d07 
>   src/mem/protocol/MESI_CMP_directory-L2cache.sm db269e704d07 
>   src/mem/protocol/MESI_CMP_directory-dir.sm db269e704d07 
>   src/mem/protocol/MESI_CMP_directory-dma.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_directory-L1cache.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_directory-L2cache.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_directory-dir.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_directory-dma.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_token-L1cache.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_token-L2cache.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_token-dir.sm db269e704d07 
>   src/mem/protocol/MOESI_CMP_token-dma.sm db269e704d07 
>   src/mem/protocol/MOESI_hammer-cache.sm db269e704d07 
>   src/mem/protocol/MOESI_hammer-dir.sm db269e704d07 
>   src/mem/protocol/MOESI_hammer-dma.sm db269e704d07 
>   src/mem/protocol/Network_test-cache.sm db269e704d07 
>   src/mem/protocol/Network_test-dir.sm db269e704d07 
>   src/mem/ruby/network/Network.hh db269e704d07 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh db269e704d07 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc db269e704d07 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh db269e704d07 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc db269e704d07 
>   src/mem/ruby/network/simple/SimpleNetwork.hh db269e704d07 
>   src/mem/ruby/network/simple/SimpleNetwork.cc db269e704d07 
>   src/mem/slicc/symbols/StateMachine.py db269e704d07 
> 
> Diff: http://reviews.m5sim.org/r/686/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Tushar
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: garnet: rename and rearrange config parameters

2011-05-08 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/688/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

garnet: rename and rearrange config parameters

Renamed (message) class to vnet for consistency with rest of ruby.
Moved some parameters specific to fixed/flexible garnet networks into their
corresponding py files.


Diffs
-

  src/mem/ruby/network/garnet/BaseGarnetNetwork.hh db269e704d07 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.cc db269e704d07 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.py db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/Router.cc db269e704d07 

Diff: http://reviews.m5sim.org/r/688/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: slicc: added vnet_type field to identify response vnets from others

2011-05-08 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/686/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

slicc: added vnet_type field to identify response vnets from others

Identifying response vnets versus other vnets will allow garnet to
determine which vnets will carry data packets, and which will carry
ctrl packets, and use appropriate buffer sizes (since data packets are larger
than ctrl packets). This in turn allows the orion power model to accurately
estimate buffer power.


Diffs
-

  src/mem/protocol/MESI_CMP_directory-L1cache.sm db269e704d07 
  src/mem/protocol/MESI_CMP_directory-L2cache.sm db269e704d07 
  src/mem/protocol/MESI_CMP_directory-dir.sm db269e704d07 
  src/mem/protocol/MESI_CMP_directory-dma.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_directory-L1cache.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_directory-L2cache.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_directory-dir.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_directory-dma.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_token-L1cache.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_token-L2cache.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_token-dir.sm db269e704d07 
  src/mem/protocol/MOESI_CMP_token-dma.sm db269e704d07 
  src/mem/protocol/MOESI_hammer-cache.sm db269e704d07 
  src/mem/protocol/MOESI_hammer-dir.sm db269e704d07 
  src/mem/protocol/MOESI_hammer-dma.sm db269e704d07 
  src/mem/protocol/Network_test-cache.sm db269e704d07 
  src/mem/protocol/Network_test-dir.sm db269e704d07 
  src/mem/ruby/network/Network.hh db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh db269e704d07 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh db269e704d07 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc db269e704d07 
  src/mem/ruby/network/simple/SimpleNetwork.hh db269e704d07 
  src/mem/ruby/network/simple/SimpleNetwork.cc db269e704d07 
  src/mem/slicc/symbols/StateMachine.py db269e704d07 

Diff: http://reviews.m5sim.org/r/686/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: NetworkTest: added sim_cycles parameter to the ...

2011-05-07 Thread Tushar Krishna
changeset db269e704d07 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=db269e704d07
description:
NetworkTest: added sim_cycles parameter to the network tester.

The network tester terminates after injecting for sim_cycles
(default=1000), instead of having to explicitly pass --maxticks from the
command line as before. If fixed_pkts is enabled, the tester only
injects maxpackets number of packets, else it keeps injecting till 
sim_cycles.
The tester also works with zero command line arguments now.

diffstat:

 configs/example/ruby_network_test.py   |   5 
 src/cpu/testers/networktest/NetworkTest.py |   1 +
 src/cpu/testers/networktest/networktest.cc |  32 -
 src/cpu/testers/networktest/networktest.hh |   2 +-
 4 files changed, 20 insertions(+), 20 deletions(-)

diffs (144 lines):

diff -r 0990d8c19b64 -r db269e704d07 configs/example/ruby_network_test.py
--- a/configs/example/ruby_network_test.py  Sat May 07 17:28:15 2011 -0400
+++ b/configs/example/ruby_network_test.py  Sat May 07 17:43:30 2011 -0400
@@ -61,6 +61,9 @@
   help="Number of digits of precision after decimal point\
 for injection rate")
 
+parser.add_option("--sim-cycles", type="int", default=1000,
+   help="Number of simulation cycles")
+
 parser.add_option("--fixed-pkts", action="store_true",
   help="Network_test: send only -p number of packets")
 
@@ -88,8 +91,10 @@
% (options.num_cpus, block_size)
  sys.exit(1)
 
+
 cpus = [ NetworkTest(fixed_pkts=options.fixed_pkts, \
  max_packets=options.maxpackets, \
+ sim_cycles=options.sim_cycles, \
  traffic_type=options.synthetic, \
  inj_rate=options.injectionrate, \
  precision=options.precision, \
diff -r 0990d8c19b64 -r db269e704d07 src/cpu/testers/networktest/NetworkTest.py
--- a/src/cpu/testers/networktest/NetworkTest.pySat May 07 17:28:15 
2011 -0400
+++ b/src/cpu/testers/networktest/NetworkTest.pySat May 07 17:43:30 
2011 -0400
@@ -34,6 +34,7 @@
 block_offset = Param.Int(6, "block offset in bits")
 num_memories = Param.Int(1, "Num Memories")
 memory_size = Param.Int(65536, "memory size")
+sim_cycles = Param.Int(1000, "Number of simulation cycles")
 fixed_pkts = Param.Bool(False, "Send fixed number of packets")
 max_packets = Param.Counter(0, "Number of packets to send when in 
fixed_pkts mode")
 traffic_type = Param.Counter(0, "Traffic type: uniform random, tornado, 
bit complement")
diff -r 0990d8c19b64 -r db269e704d07 src/cpu/testers/networktest/networktest.cc
--- a/src/cpu/testers/networktest/networktest.ccSat May 07 17:28:15 
2011 -0400
+++ b/src/cpu/testers/networktest/networktest.ccSat May 07 17:43:30 
2011 -0400
@@ -103,13 +103,10 @@
 void
 NetworkTest::sendPkt(PacketPtr pkt)
 {
-if (cachePort.sendTiming(pkt)) {
-numPacketsSent++;
-accessRetry = false;
-} else {
-accessRetry = true;
-retryPkt = pkt;
+if (!cachePort.sendTiming(pkt)) {
+retryPkt = pkt; // RubyPort will retry sending
 }
+numPacketsSent++;
 }
 
 NetworkTest::NetworkTest(const Params *p)
@@ -120,6 +117,7 @@
   size(p->memory_size),
   blockSizeBits(p->block_offset),
   numMemories(p->num_memories),
+  simCycles(p->sim_cycles),
   fixedPkts(p->fixed_pkts),
   maxPackets(p->max_packets),
   trafficType(p->traffic_type),
@@ -135,8 +133,6 @@
 id = TESTER_NETWORK++;
 DPRINTF(NetworkTest,"Config Created: Name = %s , and id = %d\n",
 name(), id);
-
-accessRetry = false;
 }
 
 Port *
@@ -174,19 +170,11 @@
 void
 NetworkTest::tick()
 {
-if (!tickEvent.scheduled())
-schedule(tickEvent, curTick() + ticks(1));
-
 if (++noResponseCycles >= 50) {
 cerr << name() << ": deadlocked at cycle " << curTick() << endl;
 fatal("");
 }
 
-if (accessRetry) {
-sendPkt(retryPkt);
-return;
-}
-
 // make new request based on injection rate
 // (injection rate's range depends on precision)
 // - generate a random number between 0 and 10^precision
@@ -209,6 +197,14 @@
 generatePkt();
 }
 }
+
+// Schedule wakeup
+if (curTick() >= simCycles)
+exitSimLoop("Network Tester completed simCycles");
+else {
+if (!tickEvent.scheduled())
+schedule(tickEvent, curTick() + ticks(1));
+}
 }
 
 void
@@ -216,8 +212,7 @@
 {
 unsigned destination = id;
 if (trafficType == 0) { // Uniform Random
-while (destination == id)
-destination = random() % numMemories;
+destination = random() % numMemories;
 } else if (trafficType == 1) { // Tornado
 int networkDimension = (int) sqrt(numMemories);
 int my_x = id%networkDimen

[m5-dev] changeset in m5: network: added Torus and Pt2Pt topologies

2011-05-07 Thread Tushar Krishna
changeset 0990d8c19b64 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=0990d8c19b64
description:
network: added Torus and Pt2Pt topologies

diffstat:

 src/mem/ruby/network/topologies/Pt2Pt.py   |   55 +
 src/mem/ruby/network/topologies/SConscript |3 +-
 src/mem/ruby/network/topologies/Torus.py   |  122 +
 3 files changed, 179 insertions(+), 1 deletions(-)

diffs (195 lines):

diff -r a6363c870af6 -r 0990d8c19b64 src/mem/ruby/network/topologies/Pt2Pt.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/src/mem/ruby/network/topologies/Pt2Pt.py  Sat May 07 17:28:15 2011 -0400
@@ -0,0 +1,55 @@
+# Copyright (c) 2011 Advanced Micro Devices, Inc.
+#   2011 Massachusetts Institute of Technology
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Brad Beckmann
+#      Tushar Krishna
+
+from m5.params import *
+from m5.objects import *
+
+class Pt2Pt(Topology):
+description='Pt2Pt'
+
+def makeTopology(nodes, options, IntLink, ExtLink, Router):
+# Create an individual router for each controller, and connect all to all.
+routers = [Router(router_id=i) for i in range(len(nodes))]
+ext_links = [ExtLink(link_id=i, ext_node=n, int_node=routers[i])
+ for (i, n) in enumerate(nodes)]
+link_count = len(nodes)
+
+int_links = []
+for i in xrange(len(nodes)):
+for j in xrange(len(nodes)):
+if (i != j):
+link_count += 1
+int_links.append(IntLink(link_id=link_count,
+ node_a=routers[i],
+ node_b=routers[j]))
+
+return Pt2Pt(ext_links=ext_links,
+ int_links=int_links,
+ routers=routers)
diff -r a6363c870af6 -r 0990d8c19b64 src/mem/ruby/network/topologies/SConscript
--- a/src/mem/ruby/network/topologies/SConscriptSat May 07 07:38:36 
2011 -0500
+++ b/src/mem/ruby/network/topologies/SConscriptSat May 07 17:28:15 
2011 -0400
@@ -36,4 +36,5 @@
 PySource('', 'Crossbar.py')
 PySource('', 'Mesh.py')
 PySource('', 'MeshDirCorners.py')
-
+PySource('', 'Pt2Pt.py')
+PySource('', 'Torus.py')
diff -r a6363c870af6 -r 0990d8c19b64 src/mem/ruby/network/topologies/Torus.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/src/mem/ruby/network/topologies/Torus.py  Sat May 07 17:28:15 2011 -0400
@@ -0,0 +1,122 @@
+# Copyright (c) 2011 Advanced Micro Devices, Inc.
+#   2011 Massachusetts Institute of Technology
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BU

[m5-dev] Review Request: network: added Torus and Pt2Pt topologies

2011-04-29 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/667/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

network: added Torus and Pt2Pt topologies


Diffs
-

  src/mem/ruby/network/topologies/Pt2Pt.py PRE-CREATION 
  src/mem/ruby/network/topologies/SConscript 7939dd0c4ff2 
  src/mem/ruby/network/topologies/Torus.py PRE-CREATION 

Diff: http://reviews.m5sim.org/r/667/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: NetworkTest: added sim_cycles parameter to the network tester.

2011-04-29 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/660/#review1172
---



src/cpu/testers/networktest/networktest.cc
<http://reviews.m5sim.org/r/660/#comment1608>

Hey Brad,
One concern that I have with my current implementation here is that if 
--fixed-pkts is enabled, then the tester is not scheduled after injecting 
maxPackets. 
Once all packets are delivered (=> no more events from the network side as 
well), there is no agent to call exitSimLoop to end the simulation, so it ends 
at m5's max tick (9223372036854775807) cycles. This does not slow down the 
simulation (since there are no events after all delivery), and is ok. But it 
does screw up the power stats etc which use Ruby_cycles, and sort of looks ugly 
since m5 prints out that the simulation ended after 9223372036854775807 cycles.

One option is to end the simulation as soon as the tester injects 
maxPackets, but that wont result in all packets getting delivered, defeating 
the purpose of fixed-pkts which I added for network debugging.

The other option is to keep scheduling the tester till simCycles, but 
simply stopping the generation of packets after maxPackets (this was what I was 
doing earlier). But this requires the simCycles input to be greater than the 
time by which all packets are expected to be injected (which depends upon 
maxPackets and injection rate).

[Unlike the ruby random tester, the tester here does not track anything to 
determine when everything is delivered].

Any suggestions?

Thanks,
Tushar


- Tushar


On 2011-04-25 16:18:04, Tushar Krishna wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/660/
> ---
> 
> (Updated 2011-04-25 16:18:04)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
> Binkert, and Brad Beckmann.
> 
> 
> Summary
> ---
> 
> NetworkTest: added sim_cycles parameter to the network tester.
> 
> The network tester terminates after injecting for sim_cycles
> (default=1000), instead of having to explicitly pass --maxtick from the
> command line as before. If fixed_pkts is enabled, the tester stops
> scheduling itself after injecting maxpackets number of packets.
> The tester also works with zero command line arguments now.
> 
> 
> Diffs
> -
> 
>   configs/example/ruby_network_test.py de679a068dd8 
>   src/cpu/testers/networktest/NetworkTest.py de679a068dd8 
>   src/cpu/testers/networktest/networktest.hh de679a068dd8 
>   src/cpu/testers/networktest/networktest.cc de679a068dd8 
> 
> Diff: http://reviews.m5sim.org/r/660/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Tushar
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: generalized bw for basic links

2011-04-27 Thread Tushar Krishna


> On 2011-04-27 16:03:25, Tushar Krishna wrote:
> > src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py, line 44
> > <http://reviews.m5sim.org/r/661/diff/1/?file=12097#file12097line44>
> >
> > In garnet, the link width is actually equal to flit size (i.e. the 
> > entire flit is injected into the link). [bigger packets such as data are 
> > thereby broken into multiple flits]. 
> > So not sure if having both a "bandwidth_factor" and a "flit_size" 
> > parameter inside BaseGarnetNetwork.py will work. 
> > Perhaps we should set flit_size equal to bandwidth_factor there? 
> > "link_bandwidth" is a clearer term but I understand that is not true 
> > for simple network where the endpoint bandwidth comes into play...
> 
> Brad Beckmann wrote:
> Yeah, I don't want to call it link_bandwidth or simply bandwidth because 
> the multipliers do impact the final bandwidth for the simple network.
> 
> The confusion I have, and the reason why I changed it, is before Garnet 
> links could be of only one width, even though one would specify links of 
> different widths in the topology.  Can we remove the flit _size parameter in 
> BaseGarnetNetwork and just rely on the per link bandwidths (i.e. 
> channel_width)?  Right now, only the NetworkInterfaces use the flit_size 
> parameter and it seems more natural to have that be a configuration parameter 
> for just the NIs and not the entire network.  Maybe that is a good reason to 
> make the NIs sim_objects.
> 
> What do you think?  That seems like the right solution to me, but I would 
> like to know your thoughts before I spend time implementing it.
>
> 
> Tushar Krishna wrote:
> Garnet actually does not use the bw parameters from the topology files at 
> all, and just uses the latency ones. You are right in that only the NI needs 
> the flit size parameter when creating flits. 
> However, the routers inject the complete flit into the link. The number 
> of cycles it takes in the link depends upon link_latency. 
> If we use the channel bandwidth parameter, then a flit size of 16, and a 
> channel width of 8 (=> phit), requires that the flit should take 2 cycles to 
> cross the link. 
> But if the link latency is say 3 cycles, then the flit should take 2x3 = 
> 6 cycles. Currently Garnet does not implement this. The flit would take 
> 3-cycles in this case. 
> Do you want me to modify garnet to implement this?
> 
> Brad Beckmann wrote:
> Yes, non-uniformed link widths definitely complicate things.  I don't 
> want to give you a bunch of work and I don't think it is necessary that 
> Garnet needs to support multiple link widths.  I just don't want someone 
> modifying the link bandwidths, expecting that to change the Garnet model, 
> when it does not.  Instead, we could simply modify the current topologies to 
> only use links of the same widths and add a check in Garent that verifies all 
> links are the same width during initialization.  If they don't, we could 
> generate a fatal message saying that only the simple network supports 
> non-uniform link bandwidth.  It is up to you which direction we go down.  I 
> just don't like the current implementation.
> 
> By the way, in your example shouldn't the flit take 4 cycles if we assume 
> the links are pipelined?

Yeah 4 cycles if links are pipelined.

Your solution makes sense. The links should use the bw parameter. We should use 
flit width only at the NI (which is what is done right now, I checked that the 
flit width parameter is not used by garnet anywhere else, though Router_d's 
constructor just initializes it). 
So not sure why we need the NI to be a simobject? It can just use flit_size 
from BaseGarnetNetwork.py as it does currently.
I can add a fatal message inside the network to make sure that flit size is 
equal to channel width in a separate patch.


- Tushar


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/661/#review1161
---


On 2011-04-27 10:38:47, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/661/
> ---
> 
> (Updated 2011-04-27 10:38:47)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: generalized bw for basic links
> 
> Generalized the specification of bw for basic lin

Re: [m5-dev] Review Request: network: generalized bw for basic links

2011-04-27 Thread Tushar Krishna


> On 2011-04-27 16:03:25, Tushar Krishna wrote:
> > src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py, line 44
> > <http://reviews.m5sim.org/r/661/diff/1/?file=12097#file12097line44>
> >
> > In garnet, the link width is actually equal to flit size (i.e. the 
> > entire flit is injected into the link). [bigger packets such as data are 
> > thereby broken into multiple flits]. 
> > So not sure if having both a "bandwidth_factor" and a "flit_size" 
> > parameter inside BaseGarnetNetwork.py will work. 
> > Perhaps we should set flit_size equal to bandwidth_factor there? 
> > "link_bandwidth" is a clearer term but I understand that is not true 
> > for simple network where the endpoint bandwidth comes into play...
> 
> Brad Beckmann wrote:
> Yeah, I don't want to call it link_bandwidth or simply bandwidth because 
> the multipliers do impact the final bandwidth for the simple network.
> 
> The confusion I have, and the reason why I changed it, is before Garnet 
> links could be of only one width, even though one would specify links of 
> different widths in the topology.  Can we remove the flit _size parameter in 
> BaseGarnetNetwork and just rely on the per link bandwidths (i.e. 
> channel_width)?  Right now, only the NetworkInterfaces use the flit_size 
> parameter and it seems more natural to have that be a configuration parameter 
> for just the NIs and not the entire network.  Maybe that is a good reason to 
> make the NIs sim_objects.
> 
> What do you think?  That seems like the right solution to me, but I would 
> like to know your thoughts before I spend time implementing it.
>

Garnet actually does not use the bw parameters from the topology files at all, 
and just uses the latency ones. You are right in that only the NI needs the 
flit size parameter when creating flits. 
However, the routers inject the complete flit into the link. The number of 
cycles it takes in the link depends upon link_latency. 
If we use the channel bandwidth parameter, then a flit size of 16, and a 
channel width of 8 (=> phit), requires that the flit should take 2 cycles to 
cross the link. 
But if the link latency is say 3 cycles, then the flit should take 2x3 = 6 
cycles. Currently Garnet does not implement this. The flit would take 3-cycles 
in this case. 
Do you want me to modify garnet to implement this?


- Tushar


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/661/#review1161
---


On 2011-04-27 10:38:47, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/661/
> ---
> 
> (Updated 2011-04-27 10:38:47)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: generalized bw for basic links
> 
> Generalized the specification of bw for basic links.  This value is then
> translated to the specific value used by the simple and Garnet networks.
> 
> 
> Diffs
> -
> 
>   configs/ruby/Ruby.py b02bca5aed04 
>   src/mem/ruby/network/BasicLink.hh PRE-CREATION 
>   src/mem/ruby/network/BasicLink.cc PRE-CREATION 
>   src/mem/ruby/network/BasicLink.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py PRE-CREATION 
>   src/mem/ruby/network/simple/SConscript b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleLink.hh PRE-CREATION 
>   src/mem/ruby/network/simple/SimpleLink.cc PRE-CREATION 
>   src/mem/ruby/network/simple/SimpleLink.py PRE-CREATION 
>   src/mem/ruby/network/simple/SimpleNetwork.cc b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/661/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: moved network config params

2011-04-27 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/662/#review1164
---

Ship it!


Yeah this will make things clearer between simple and garnet networks. Thanks.

- Tushar


On 2011-04-27 10:38:54, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/662/
> ---
> 
> (Updated 2011-04-27 10:38:54)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: moved network config params
> 
> Moved the buffer_size, endpoint_bandwidth, and adaptive_routing params out of
> the top-level parent network object and to only those networks that actually
> use those parameters.
> 
> 
> Diffs
> -
> 
>   src/mem/ruby/network/Network.hh b02bca5aed04 
>   src/mem/ruby/network/Network.cc b02bca5aed04 
>   src/mem/ruby/network/Network.py b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleNetwork.hh b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleNetwork.cc b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleNetwork.py b02bca5aed04 
>   src/mem/ruby/network/simple/Switch.hh b02bca5aed04 
>   src/mem/ruby/network/simple/Switch.cc b02bca5aed04 
>   src/mem/ruby/network/simple/Throttle.hh b02bca5aed04 
>   src/mem/ruby/network/simple/Throttle.cc b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/662/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: removed the unused network-wide latency param

2011-04-27 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/663/#review1163
---

Ship it!


- Tushar


On 2011-04-27 10:39:00, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/663/
> ---
> 
> (Updated 2011-04-27 10:39:00)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: removed the unused network-wide latency param
> 
> 
> Diffs
> -
> 
>   src/mem/ruby/network/Network.hh b02bca5aed04 
>   src/mem/ruby/network/Network.cc b02bca5aed04 
>   src/mem/ruby/network/Network.py b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/663/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: adjusted default endponit bandwidth

2011-04-27 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/664/#review1162
---

Ship it!


- Tushar


On 2011-04-27 10:39:15, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/664/
> ---
> 
> (Updated 2011-04-27 10:39:15)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: adjusted default endponit bandwidth
> 
> The simple network's endpoint bandwidth value is used to adjust the overall
> bandwidth of the network.  Specifically, the ration between endpoint bandwidth
> and the MESSAGE_SIZE_MULTIPLIER determines the increase.  By setting the value
> to 1000, that means the bandwdith factor specified in the links translates to
> the link bandwidth in bytes.  Previously, it was increasing that value by 10.
> 
> This patch will likely require a reset of the ruby regression tester stats.
> 
> 
> Diffs
> -
> 
>   src/mem/ruby/network/simple/SimpleNetwork.py b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/664/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: generalized bw for basic links

2011-04-27 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/661/#review1161
---



src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py


In garnet, the link width is actually equal to flit size (i.e. the entire 
flit is injected into the link). [bigger packets such as data are thereby 
broken into multiple flits]. 
So not sure if having both a "bandwidth_factor" and a "flit_size" parameter 
inside BaseGarnetNetwork.py will work. 
Perhaps we should set flit_size equal to bandwidth_factor there? 
"link_bandwidth" is a clearer term but I understand that is not true for 
simple network where the endpoint bandwidth comes into play...


- Tushar


On 2011-04-27 10:38:47, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/661/
> ---
> 
> (Updated 2011-04-27 10:38:47)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: generalized bw for basic links
> 
> Generalized the specification of bw for basic links.  This value is then
> translated to the specific value used by the simple and Garnet networks.
> 
> 
> Diffs
> -
> 
>   configs/ruby/Ruby.py b02bca5aed04 
>   src/mem/ruby/network/BasicLink.hh PRE-CREATION 
>   src/mem/ruby/network/BasicLink.cc PRE-CREATION 
>   src/mem/ruby/network/BasicLink.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py PRE-CREATION 
>   src/mem/ruby/network/simple/SConscript b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleLink.hh PRE-CREATION 
>   src/mem/ruby/network/simple/SimpleLink.cc PRE-CREATION 
>   src/mem/ruby/network/simple/SimpleLink.py PRE-CREATION 
>   src/mem/ruby/network/simple/SimpleNetwork.cc b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/661/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: NetworkTest: added sim_cycles parameter to the network tester.

2011-04-25 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/660/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

NetworkTest: added sim_cycles parameter to the network tester.

The network tester terminates after injecting for sim_cycles
(default=1000), instead of having to explicitly pass --maxtick from the
command line as before. If fixed_pkts is enabled, the tester stops
scheduling itself after injecting maxpackets number of packets.
The tester also works with zero command line arguments now.


Diffs
-

  configs/example/ruby_network_test.py de679a068dd8 
  src/cpu/testers/networktest/NetworkTest.py de679a068dd8 
  src/cpu/testers/networktest/networktest.hh de679a068dd8 
  src/cpu/testers/networktest/networktest.cc de679a068dd8 

Diff: http://reviews.m5sim.org/r/660/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: garnet: cleaned up flexible netwok header file

2011-04-25 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/652/#review1159
---

Ship it!


- Tushar


On 2011-04-22 15:16:47, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/652/
> ---
> 
> (Updated 2011-04-22 15:16:47)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> garnet: cleaned up flexible netwok header file
> 
> 
> Diffs
> -
> 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 914389024c33 
> 
> Diff: http://reviews.m5sim.org/r/652/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: convert links & switches to first class C++ SimObjects

2011-04-25 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/653/#review1158
---

Ship it!


Looks good to me Brad. I presume you already did extensive testing with 
Network_test and other protocols. 
Unless anyone has concerns, you can push it in. I'll wait for your patch that 
updates the bw parameters for both networks.

- Tushar


On 2011-04-25 15:43:08, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/653/
> ---
> 
> (Updated 2011-04-25 15:43:08)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: convert links & switches to first class C++ SimObjects
> 
> This patch converts links and switches from second class simobjects that were
> virtually ignored by the networks (both simple and Garnet) to first class
> simobjects that directly correspond to c++ ojbects manipulated by the
> topology and network classes.  This is especially true for Garnet, where the
> links and switches directly correspond to specific C++ objects.
> 
> By making this change, many aspects of the Topology class were simplified.
> 
> 
> Diffs
> -
> 
>   configs/ruby/MESI_CMP_directory.py b02bca5aed04 
>   configs/ruby/MI_example.py b02bca5aed04 
>   configs/ruby/MOESI_CMP_directory.py b02bca5aed04 
>   configs/ruby/MOESI_CMP_token.py b02bca5aed04 
>   configs/ruby/MOESI_hammer.py b02bca5aed04 
>   configs/ruby/Network_test.py b02bca5aed04 
>   configs/ruby/Ruby.py b02bca5aed04 
>   src/mem/protocol/RubySlicc_Exports.sm b02bca5aed04 
>   src/mem/ruby/network/BasicLink.hh PRE-CREATION 
>   src/mem/ruby/network/BasicLink.cc PRE-CREATION 
>   src/mem/ruby/network/BasicLink.py PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.hh PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.cc PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.py PRE-CREATION 
>   src/mem/ruby/network/Network.hh b02bca5aed04 
>   src/mem/ruby/network/Network.py b02bca5aed04 
>   src/mem/ruby/network/SConscript b02bca5aed04 
>   src/mem/ruby/network/Topology.hh PRE-CREATION 
>   src/mem/ruby/network/Topology.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.hh PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/fixed-pipeline/SConscript b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.hh PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.hh b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.cc b02bca5aed04 
>   src/mem/ruby/network/garnet/flexible-pipeline/SConscript b02bca5aed04 
>   src/mem/ruby/network/orion/NetworkPower.cc b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleNetwork.hh b02bca5aed04 
>   src/mem/ruby/network/simple/SimpleNetwork.cc b02bca5aed04 
>   src/mem/ruby/network/topologies/Crossbar.py b02bca5aed04 
>   src/mem/ruby/network/topologies/Mesh.py b02bca5aed04 
>   src/mem/ruby/network/topologies/MeshDirCorners.py b02bca5aed04 
>   src/mem/ruby/slicc_interface/AbstractController.hh b02bca5aed04 
>   src/mem/ruby/slicc_interface/Controller.py b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/653/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: convert links & switches to first class C++ SimObjects

2011-04-25 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/653/#review1157
---


Hi Brad,
the updated patch hasn't applied cleanly and so the diff is not visible.
- Tushar

- Tushar


On 2011-04-25 11:54:17, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/653/
> ---
> 
> (Updated 2011-04-25 11:54:17)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: convert links & switches to first class C++ SimObjects
> 
> This patch converts links and switches from second class simobjects that were
> virtually ignored by the networks (both simple and Garnet) to first class
> simobjects that directly correspond to c++ ojbects manipulated by the
> topology and network classes.  This is especially true for Garnet, where the
> links and switches directly correspond to specific C++ objects.
> 
> By making this change, many aspects of the Topology class were simplified.
> 
> 
> Diffs
> -
> 
>   configs/ruby/MESI_CMP_directory.py 12afb5f7f678 
>   configs/ruby/MI_example.py 12afb5f7f678 
>   configs/ruby/MOESI_CMP_directory.py 12afb5f7f678 
>   configs/ruby/MOESI_CMP_token.py 12afb5f7f678 
>   configs/ruby/MOESI_hammer.py 12afb5f7f678 
>   configs/ruby/Network_test.py 12afb5f7f678 
>   configs/ruby/Ruby.py 12afb5f7f678 
>   src/mem/protocol/RubySlicc_Exports.sm 12afb5f7f678 
>   src/mem/ruby/network/BasicLink.hh PRE-CREATION 
>   src/mem/ruby/network/BasicLink.cc PRE-CREATION 
>   src/mem/ruby/network/BasicLink.py PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.hh PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.cc PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.py PRE-CREATION 
>   src/mem/ruby/network/Network.hh 12afb5f7f678 
>   src/mem/ruby/network/Network.py 12afb5f7f678 
>   src/mem/ruby/network/SConscript 12afb5f7f678 
>   src/mem/ruby/network/Topology.hh 12afb5f7f678 
>   src/mem/ruby/network/Topology.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.hh PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/fixed-pipeline/SConscript 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.hh PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.hh 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.cc 12afb5f7f678 
>   src/mem/ruby/network/garnet/flexible-pipeline/SConscript 12afb5f7f678 
>   src/mem/ruby/network/orion/NetworkPower.cc 12afb5f7f678 
>   src/mem/ruby/network/simple/SimpleNetwork.hh 12afb5f7f678 
>   src/mem/ruby/network/simple/SimpleNetwork.cc 12afb5f7f678 
>   src/mem/ruby/network/topologies/Crossbar.py 12afb5f7f678 
>   src/mem/ruby/network/topologies/Mesh.py 12afb5f7f678 
>   src/mem/ruby/network/topologies/MeshDirCorners.py 12afb5f7f678 
>   src/mem/ruby/slicc_interface/AbstractController.hh 12afb5f7f678 
>   src/mem/ruby/slicc_interface/Controller.py 12afb5f7f678 
> 
> Diff: http://reviews.m5sim.org/r/653/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: ruby: removed dated comment in SimpleNetwork

2011-04-25 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/650/#review1151
---

Ship it!


- Tushar


On 2011-04-22 15:16:42, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/650/
> ---
> 
> (Updated 2011-04-22 15:16:42)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> ruby: removed dated comment in SimpleNetwork
> 
> 
> Diffs
> -
> 
>   src/mem/ruby/network/simple/SimpleNetwork.hh 914389024c33 
> 
> Diff: http://reviews.m5sim.org/r/650/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Brad
> 
>

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: network: convert links & switches to first class C++ SimObjects

2011-04-25 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/653/#review1150
---



src/mem/ruby/network/BasicLink.py


could you add a comment somewhere that the bw_multiplier field is only used 
by the simple network?



src/mem/ruby/network/BasicRouter.hh


typo in "relation"



src/mem/ruby/network/Network.py


Some parameters such as topology, number_of_virtual_networks etc are used 
by all networks. 
bandwidth and adaptive routing parameters are only used by simple network.
Either we could move them to a SimpleNetwork.py kind of file, OR perhaps we 
should move the BaseGarnetNetwork.py parameters here into Network.py with 
appropriate comments?



src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py


I have been thinking of renaming vcs_per_class to vcs_per_vnet for sometime 
now, to make it consistent with "virtual networks" (instead of message class). 
But that would need a change in BaseGarnetNetwork.py/hh/cc too? If it is 
difficult for you to do, I can do that in a subsequent patch.



src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc


Why is "direction" needed in all the links? Don't the src/dest 
appropriately set up the producers and consumers for the link?
Is "direction" being used for stats?

To be consistent, the direction of a credit link will be opposite to the 
direction of the corresponding network link.


- Tushar


On 2011-04-22 15:16:58, Brad Beckmann wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/653/
> ---
> 
> (Updated 2011-04-22 15:16:58)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> network: convert links & switches to first class C++ SimObjects
> 
> This patch converts links and switches from second class simobjects that were
> virtually ignored by the networks (both simple and Garnet) to first class
> simobjects that directly correspond to c++ ojbects manipulated by the
> topology and network classes.  This is especially true for Garnet, where the
> links and switches directly correspond to specific C++ objects.
> 
> By making this change, many aspects of the Topology class were simplified.
> 
> 
> Diffs
> -
> 
>   configs/ruby/MESI_CMP_directory.py 914389024c33 
>   configs/ruby/MI_example.py 914389024c33 
>   configs/ruby/MOESI_CMP_directory.py 914389024c33 
>   configs/ruby/MOESI_CMP_token.py 914389024c33 
>   configs/ruby/MOESI_hammer.py 914389024c33 
>   configs/ruby/Network_test.py 914389024c33 
>   configs/ruby/Ruby.py 914389024c33 
>   src/mem/protocol/RubySlicc_Exports.sm 914389024c33 
>   src/mem/ruby/network/BasicLink.hh PRE-CREATION 
>   src/mem/ruby/network/BasicLink.cc PRE-CREATION 
>   src/mem/ruby/network/BasicLink.py PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.hh PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.cc PRE-CREATION 
>   src/mem/ruby/network/BasicRouter.py PRE-CREATION 
>   src/mem/ruby/network/Network.hh 914389024c33 
>   src/mem/ruby/network/Network.py 914389024c33 
>   src/mem/ruby/network/SConscript 914389024c33 
>   src/mem/ruby/network/Topology.hh PRE-CREATION 
>   src/mem/ruby/network/Topology.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.hh PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py PRE-CREATION 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc 914389024c33 
>   src/mem/ruby/network/garnet/fixed-pipeline/SConscript 914389024c33 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.hh PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.cc PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py PRE-CREATION 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh 914389024c33 
>   src/mem/ruby/network/garnet/flex

Re: [m5-dev] changeset in m5: This patch fixes a build error in networktest.c...

2011-03-22 Thread Tushar Krishna
Ah sorry Nate didn't know the commit convention. Will follow it in 
future checkins.


Is this link available from the m5sim wiki somewhere?
I tried searching in http://www.m5sim.org/wiki/index.php/Development and 
in http://www.m5sim.org/wiki/index.php/NewDoc#Development for the 
checkin conventions, but couldn't find them there.


Thanks,
Tushar


On 3/23/2011 12:38 PM, nathan binkert wrote:

description:
This patch fixes a build error in networktest.cc that occurs with gcc4.2

Tushar,

The above description doesn't follow our convention for commit messages.
Please read http://www.m5sim.org/wiki/index.php/Commit_Access
Specifically, the part about commit messages.

Also, saying "This patch..." doesn't add much.  Try to be concise in
that first line and give as much information as possible.

   Nate

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] networktest.cc error

2011-03-22 Thread Tushar Krishna
Thanks guys. Yeah I was using gcc4.3 which does not give this error, 
while gcc4.2 does.

I just checked in a patch to solve this.

Thanks,
Tushar


On 3/23/2011 10:56 AM, Nilay wrote:

On Tue, March 22, 2011 9:45 pm, Tushar Krishna wrote:

Hi all,
I didn't (and still don't) see any errors in networktest.cc when I built
m5 on my own computer for both SE and FS modes before checking in the
patch.
Could it be a gcc version issue?

The error which the regression tester points to is

build/ARM_FS/cpu/testers/networktest/networktest.cc:194: error: call
of overloaded 'pow(int, int&)' is ambiguous

The line which is giving the error is:
int injRange = pow(10, precision);

precision is an input parameter.

I just want to raise 10 to an input integer value. Is there any other
way I should use to do this?

What is the regression test that I should run to reproduce the errors
and warnings?

Thanks,
Tushar


Tushar, try compiling with GCC 4.2, that's the version on zizzer.

--
Nilay

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: This patch fixes a build error in networktest.c...

2011-03-22 Thread Tushar Krishna
changeset ec1eecca2f8f in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=ec1eecca2f8f
description:
This patch fixes a build error in networktest.cc that occurs with gcc4.2

diffstat:

 src/cpu/testers/networktest/networktest.cc |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (23 lines):

diff -r e21f6e70169e -r ec1eecca2f8f src/cpu/testers/networktest/networktest.cc
--- a/src/cpu/testers/networktest/networktest.ccTue Mar 22 06:41:54 
2011 -0500
+++ b/src/cpu/testers/networktest/networktest.ccTue Mar 22 23:38:09 
2011 -0400
@@ -165,7 +165,7 @@
 
 assert(pkt->isResponse());
 noResponseCycles = 0;
-delete pkt->req;
+delete req;
 delete pkt;
 }
 
@@ -191,8 +191,8 @@
 // - generate a random number between 0 and 10^precision
 // - send pkt if this number is < injRate*(10^precision)
 bool send_this_cycle;
-int injRange = pow(10, precision);
-unsigned trySending = random() % injRange;
+double injRange = pow((double) 10, (double) precision);
+unsigned trySending = random() % (int) injRange;
 if (trySending < injRate*injRange)
 send_this_cycle = true;
 else
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] networktest.cc error

2011-03-22 Thread Tushar Krishna

Hi all,
I didn't (and still don't) see any errors in networktest.cc when I built 
m5 on my own computer for both SE and FS modes before checking in the 
patch.

Could it be a gcc version issue?

The error which the regression tester points to is

build/ARM_FS/cpu/testers/networktest/networktest.cc:194: error: call
of overloaded 'pow(int, int&)' is ambiguous

The line which is giving the error is:
int injRange = pow(10, precision);

precision is an input parameter.

I just want to raise 10 to an input integer value. Is there any other 
way I should use to do this?


What is the regression test that I should run to reproduce the errors 
and warnings?


Thanks,
Tushar


On 3/23/2011 9:49 AM, m5-dev-requ...@m5sim.org wrote:

Send m5-dev mailing list submissions to
m5-dev@m5sim.org

To subscribe or unsubscribe via the World Wide Web, visit
http://m5sim.org/mailman/listinfo/m5-dev
or, via email, send a message with subject or body 'help' to
m5-dev-requ...@m5sim.org

You can reach the person managing the list at
m5-dev-ow...@m5sim.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of m5-dev digest..."


Today's Topics:

1. Re: Cron/z/m5/regression/do-regression  quick
   (Gabriel Michael Black)
2. Re: Cron  /z/m5/regression/do-regression quick
   (Nilay Vaish)
3. Re: Cron  /z/m5/regression/do-regressionquick
   (nathan binkert)
4. Re: Cron  /z/m5/regression/do-regression quick
   (Nilay Vaish)
5. Re: Cron  /z/m5/regression/do-regression quick
   (Gabe Black)
6. Re: Cron  /z/m5/regression/do-regression quick
   (Beckmann, Brad)
7. Ruby random tester failing with MESI_CMP_directory?
   (Arkaprava Basu)
8. Re: Ruby random tester failing with MESI_CMP_directory? (Nilay)
9. Re: Ruby random tester failing with MESI_CMP_directory? (Lisa Hsu)


--

Message: 1
Date: Tue, 22 Mar 2011 14:47:42 -0400
From: Gabriel Michael Black
To: m5-dev@m5sim.org
Subject: Re: [m5-dev] Cron
/z/m5/regression/do-regression  quick
Message-ID:<20110322144742.201251r4bqtec...@mail.eecs.umich.edu>
Content-Type: text/plain;   charset=ISO-8859-1; DelSp="Yes";
format="flowed"

The two issues below are copied from ARM_FS, but other targets had the
same problems.

These errors are making the build fail.

build/ARM_FS/cpu/testers/networktest/networktest.cc: In member
function 'void NetworkTest::completeRequest(Packet*)':
build/ARM_FS/cpu/testers/networktest/networktest.cc:160: warning:
unused variable 'req'
build/ARM_FS/cpu/testers/networktest/networktest.cc: In member
function 'void NetworkTest::tick()':
build/ARM_FS/cpu/testers/networktest/networktest.cc:194: error: call
of overloaded 'pow(int, int&)' is ambiguous


These warnings should probably be cleaned up too, although I don't
know how long they've been there or how hard that would be.

build/ARM_FS/mem/ruby/system/Sequencer.cc: In member function 'void
Sequencer::issueRequest(const RubyRequest&)':
build/ARM_FS/mem/ruby/system/Sequencer.cc:616: warning: 'ctype' may be
used uninitialized in this function
build/ARM_FS/mem/ruby/system/Sequencer.cc:653: warning: 'amtype' may
be used uninitialized in this function

Quoting Cron Daemon:


scons: *** [build/ALPHA_SE/cpu/testers/networktest/networktest.fo] Error 1
scons: ***
[build/ALPHA_SE_MOESI_hammer/cpu/testers/networktest/networktest.fo]
Error 1
scons: ***
[build/ALPHA_SE_MESI_CMP_directory/cpu/testers/networktest/networktest.fo]
Error 1
scons: ***
[build/ALPHA_SE_MOESI_CMP_directory/cpu/testers/networktest/networktest.fo]
Error 1
scons: ***
[build/ALPHA_SE_MOESI_CMP_token/cpu/testers/networktest/networktest.fo]
Error 1
scons: *** [build/ALPHA_FS/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/MIPS_SE/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/POWER_SE/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/SPARC_SE/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/X86_SE/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/X86_FS/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/ARM_SE/cpu/testers/networktest/networktest.fo] Error 1
scons: *** [build/ARM_FS/cpu/testers/networktest/networktest.fo] Error 1

See /z/m5/regression/regress-2011-03-22-03:00:01 for details.

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev





--

Message: 2
Date: Tue, 22 Mar 2011 14:33:58 -0500 (CDT)
From: Nilay Vaish
To: M5 Developer List
Subject: Re: [m5-dev] Cron
/z/m5/regression/do-regression quick
Message-ID:
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Tue, 22 Mar 2011, Gabriel Michael Black wrote:


The two issues below are copied from ARM_FS, but other targets had the same
problems.

These errors are making

[m5-dev] changeset in m5: This patch makes garnet use the info about acti...

2011-03-21 Thread Tushar Krishna
changeset 2c47dc111abd in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=2c47dc111abd
description:
This patch makes garnet use the info about active and inactive vnets 
during allocation and power estimations etc

diffstat:

 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |   3 +
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh |   1 +
 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc|  66 +
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc|  15 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |   3 +
 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc|  41 +-
 src/mem/ruby/network/garnet/flexible-pipeline/Router.hh|   1 +
 src/mem/ruby/network/orion/NetworkPower.cc |   7 +-
 8 files changed, 93 insertions(+), 44 deletions(-)

diffs (293 lines):

diff -r bdb039c42553 -r 2c47dc111abd 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Mon Mar 
21 22:51:59 2011 -0400
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Mon Mar 
21 22:51:59 2011 -0400
@@ -300,6 +300,9 @@
 out << "-" << endl;
 
 for (int i = 0; i < m_vcs_per_class*m_virtual_networks; i++) {
+if (!m_in_use[i/m_vcs_per_class])
+continue;
+
 average_vc_load[i] = (double(average_vc_load[i]) /
 (double(g_eventQueue_ptr->getTime()) - m_ruby_start));
 out << "Average VC Load [" << i << "] = " << average_vc_load[i]
diff -r bdb039c42553 -r 2c47dc111abd 
src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hhMon Mar 21 
22:51:59 2011 -0400
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hhMon Mar 21 
22:51:59 2011 -0400
@@ -62,6 +62,7 @@
 int link_weight, CreditLink_d *credit_link);
 
 int get_num_vcs()   { return m_num_vcs; }
+int get_num_vnets() { return m_virtual_networks; }
 int get_vc_per_vnet()   { return m_vc_per_vnet; }
 int get_num_inports()   { return m_input_unit.size(); }
 int get_num_outports()  { return m_output_unit.size(); }
diff -r bdb039c42553 -r 2c47dc111abd 
src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc   Mon Mar 
21 22:51:59 2011 -0400
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc   Mon Mar 
21 22:51:59 2011 -0400
@@ -90,14 +90,28 @@
 // First do round robin arbitration on a set of input vc requests
 for (int inport = 0; inport < m_num_inports; inport++) {
 int invc = m_round_robin_inport[inport];
-m_round_robin_inport[inport]++;
 
-if (m_round_robin_inport[inport] >= m_num_vcs)
-m_round_robin_inport[inport] = 0;
-for (int j = 0; j < m_num_vcs; j++) {
+// Select next round robin vc candidate within valid vnet
+int next_round_robin_invc = invc;
+do {
+next_round_robin_invc++;
+
+if (next_round_robin_invc >= m_num_vcs)
+next_round_robin_invc = 0;
+} while (!((m_router->get_net_ptr())->validVirtualNetwork(
+get_vnet(next_round_robin_invc;
+
+m_round_robin_inport[inport] = next_round_robin_invc;
+
+for (int invc_iter = 0; invc_iter < m_num_vcs; invc_iter++) {
 invc++;
 if (invc >= m_num_vcs)
 invc = 0;
+
+if (!((m_router->get_net_ptr())->validVirtualNetwork(
+get_vnet(invc
+continue;
+
 if (m_input_unit[inport]->need_stage(invc, ACTIVE_, SA_) &&
m_input_unit[inport]->has_credits(invc)) {
 if (is_candidate_inport(inport, invc)) {
@@ -141,47 +155,47 @@
 // Now there are a set of input vc requests for output vcs.
 // Again do round robin arbitration on these requests
 for (int outport = 0; outport < m_num_outports; outport++) {
-int in_port = m_round_robin_outport[outport];
+int inport = m_round_robin_outport[outport];
 m_round_robin_outport[outport]++;
 
 if (m_round_robin_outport[outport] >= m_num_outports)
 m_round_robin_outport[outport] = 0;
 
-for (int inport = 0; inport < m_num_inports; inport++) {
-in_port++;
-if (in_port >= m_num_inports)
-in_port = 0;
+for (int inport_iter = 0; inport_iter < m_num_inports; inport_iter++) {
+inport++;
+if (inport >= m_num_inports)
+inport = 0;
 
-// in_port has a request this cycle for outport:
-if (m_port_req[outport][in_port]) {
-m_port_req[outport][in_port] = false;
-int invc = m_vc_winners[outport][in_port];
-int outvc = m_input_unit[

[m5-dev] changeset in m5: This patch adds the network tester for simple a...

2011-03-21 Thread Tushar Krishna
changeset 19444b1f092c in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=19444b1f092c
description:
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:

 build_opts/ALPHA_SE_Network_test  |5 +
 configs/example/ruby_network_test.py  |  131 +++
 configs/ruby/Network_test.py  |  129 +++
 src/cpu/testers/networktest/NetworkTest.py|   42 +
 src/cpu/testers/networktest/SConscript|   37 +
 src/cpu/testers/networktest/networktest.cc|  333 
++
 src/cpu/testers/networktest/networktest.hh|  158 
 src/mem/protocol/Network_test-cache.sm|  218 ++
 src/mem/protocol/Network_test-dir.sm  |  136 
 src/mem/protocol/Network_test-msg.sm  |   77 ++
 src/mem/protocol/Network_test.slicc   |4 +
 src/mem/protocol/SConsopts|1 +
 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  |1 -
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  |3 +-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.py  |1 -
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc |   14 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc  |9 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc |8 +-
 src/mem/ruby/system/Sequencer.cc  |8 +-
 src/mem/ruby/system/Sequencer.hh  |2 +
 src/mem/ruby/system/Sequencer.py  |1 +
 21 files changed, 1294 insertions(+), 24 deletions(-)

diffs (truncated from 1482 to 300 lines):

diff -r c1c6f36e118e -r 19444b1f092c build_opts/ALPHA_SE_Network_test
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/build_opts/ALPHA_SE_Network_test  Mon Mar 21 22:51:58 2011 -0400
@@ -0,0 +1,5 @@
+FULL_SYSTEM = 0
+SS_COMPATIBLE_FP = 1
+CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,InOrderCPU'
+PROTOCOL = 'Network_test'
+RUBY = True
diff -r c1c6f36e118e -r 19444b1f092c configs/example/ruby_network_test.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/configs/example/ruby_network_test.py  Mon Mar 21 22:51:58 2011 -0400
@@ -0,0 +1,131 @@
+# Copyright (c) 2006-2007 The Regents of The University of Michigan
+# Copyright (c) 2010 Advanced Micro Devices, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Ron Dreslinski
+#  Tushar Krishna
+
+import m5
+from m5.objects import *
+from m5.defines import buildEnv
+from m5.util import addToPath
+import os, optparse, sys
+addToPath('../common')
+addToPath('../ruby')
+import Ruby
+
+if buildEnv['FULL_SYSTEM']:
+panic("This script requires system-emulation mode (*_SE).")
+
+# Get paths we might need.  It's expected this file is in m5/configs/exam

[m5-dev] changeset in m5: fix garnet fleible pipeline

2011-03-21 Thread Tushar Krishna
changeset bdb039c42553 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=bdb039c42553
description:
fix garnet fleible pipeline

diffstat:

 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc|  18 
-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh|  17 
+
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc |   8 
 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc   |   7 ++-
 src/mem/ruby/network/garnet/flexible-pipeline/flit.cc |  12 ++
 src/mem/ruby/network/garnet/flexible-pipeline/flit.hh |   4 +-
 6 files changed, 61 insertions(+), 5 deletions(-)

diffs (169 lines):

diff -r 19444b1f092c -r bdb039c42553 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.ccMon Mar 
21 22:51:58 2011 -0400
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.ccMon Mar 
21 22:51:59 2011 -0400
@@ -30,7 +30,6 @@
 
 #include 
 
-#include "base/cprintf.hh"
 #include "base/stl_helpers.hh"
 #include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh"
 #include "mem/protocol/MachineType.hh"
@@ -50,6 +49,10 @@
 : BaseGarnetNetwork(p)
 {
 m_ruby_start = 0;
+m_flits_received = 0;
+m_flits_injected = 0;
+m_network_latency = 0.0;
+m_queueing_latency = 0.0;
 
 // Allocate to and from queues
 
@@ -191,7 +194,6 @@
 GarnetNetwork::checkNetworkAllocation(NodeID id, bool ordered,
 int network_num)
 {
-cprintf ("id = %i, m_nodes = %i \n", id, m_nodes);
 assert(id < m_nodes);
 assert(network_num < m_virtual_networks);
 
@@ -264,6 +266,18 @@
" flits/cycle" << endl;
 }
 out << "-" << 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 (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;
+
 m_topology_ptr->printStats(out);
 }
 
diff -r 19444b1f092c -r bdb039c42553 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hhMon Mar 
21 22:51:58 2011 -0400
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hhMon Mar 
21 22:51:59 2011 -0400
@@ -65,6 +65,21 @@
 void printConfig(std::ostream& out) const;
 void print(std::ostream& out) const;
 
+inline void increment_injected_flits() { m_flits_injected++; }
+inline void increment_received_flits() { m_flits_received++; }
+
+inline void
+increment_network_latency(Time latency)
+{
+m_network_latency += latency;
+}
+
+inline void
+increment_queueing_latency(Time latency)
+{
+m_queueing_latency += latency;
+}
+
 bool isVNetOrdered(int vnet) { return m_ordered[vnet]; }
 bool validVirtualNetwork(int vnet) { return m_in_use[vnet]; }
 
@@ -92,6 +107,8 @@
 
 // int m_virtual_networks;
 // int m_nodes;
+int m_flits_received, m_flits_injected;
+double m_network_latency, m_queueing_latency;
 
 std::vector m_in_use;
 std::vector m_ordered;
diff -r 19444b1f092c -r bdb039c42553 
src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
--- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc Mon Mar 
21 22:51:58 2011 -0400
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc Mon Mar 
21 22:51:59 2011 -0400
@@ -162,7 +162,9 @@
 net_msg_ptr->getInternalDestination().removeNetDest(personal_dest);
 }
 for (int i = 0; i < num_flits; i++) {
+m_net_ptr->increment_injected_flits();
 flit *fl = new flit(i, vc, vnet, num_flits, new_msg_ptr);
+fl->set_delay(g_eventQueue_ptr->getTime() - msg_ptr->getTime());
 m_ni_buffers[vc]->insert(fl);
 }
 
@@ -269,6 +271,12 @@
 inNetLink->release_vc_link(t_flit->get_vc(),
 g_eventQueue_ptr->getTime() + 1);
 }
+m_net_ptr->increment_received_flits();
+int network_delay = g_eventQueue_ptr->getTime() -
+t_flit->get_enqueue_time();
+int queueing_delay = t_flit->get_delay();
+m_net_ptr->increment_network_latency(network_delay);
+m_net_ptr->increment_queueing_latency(queueing_delay);
 delete t_flit;
 }
 }
diff -r 19444b1f092c -r bdb039c42553 
src/mem/ruby/network/garnet/flexible-pipeline/Router.cc
--- a/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc   Mon Mar 21 
22:51:58 2011 -

Re: [m5-dev] Review Request: Network Tester Patch

2011-03-20 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/561/
---

(Updated 2011-03-20 05:23:02.880797)


Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Changes
---

clearer explanation about injectionrate value in ruby_network_test.py


Summary
---

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.


Diffs (updated)
-

  src/mem/ruby/system/Sequencer.py 89cd8302abd3 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 89cd8302abd3 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 89cd8302abd3 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
89cd8302abd3 
  src/mem/ruby/system/Sequencer.hh 89cd8302abd3 
  src/mem/ruby/system/Sequencer.cc 89cd8302abd3 
  src/mem/protocol/Network_test.slicc PRE-CREATION 
  src/mem/protocol/SConsopts 89cd8302abd3 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.hh 89cd8302abd3 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.cc 89cd8302abd3 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.py 89cd8302abd3 
  src/mem/protocol/Network_test-msg.sm PRE-CREATION 
  src/mem/protocol/Network_test-dir.sm PRE-CREATION 
  src/mem/protocol/Network_test-cache.sm PRE-CREATION 
  src/cpu/testers/networktest/networktest.cc PRE-CREATION 
  src/cpu/testers/networktest/SConscript PRE-CREATION 
  src/cpu/testers/networktest/networktest.hh PRE-CREATION 
  src/cpu/testers/networktest/NetworkTest.py PRE-CREATION 
  configs/ruby/Network_test.py PRE-CREATION 
  build_opts/ALPHA_SE_Network_test PRE-CREATION 
  configs/example/ruby_network_test.py PRE-CREATION 

Diff: http://reviews.m5sim.org/r/561/diff


Testing
---

Testing done with garnet and simple networks. I will update config assumptions 
etc on the wiki.


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Network Tester Patch

2011-03-20 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/561/
---

(Updated 2011-03-20 05:11:37.330118)


Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Changes
---

- Addressed Brad's comments: (1) removed functional ports from 
testers/networktest; (2) added a precision option to ruby_network_test.py that 
specifies the number of digits of precision after the decimal point for the 
injection rate. Also added comment to explain injection rate range. This field 
is used by networktest.cc when deciding whether or not to generate a packet. 
[Earlier this precision was hard-coded to 3 digits]
- Updated the Network_test-cache.sm file to replace CacheRequestType to 
RubyRequestType in accordance with recent m5 changes.


Summary
---

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.


Diffs (updated)
-

  build_opts/ALPHA_SE_Network_test PRE-CREATION 
  configs/example/ruby_network_test.py PRE-CREATION 
  configs/ruby/Network_test.py PRE-CREATION 
  src/cpu/testers/networktest/NetworkTest.py PRE-CREATION 
  src/cpu/testers/networktest/SConscript PRE-CREATION 
  src/cpu/testers/networktest/networktest.hh PRE-CREATION 
  src/cpu/testers/networktest/networktest.cc PRE-CREATION 
  src/mem/protocol/Network_test-cache.sm PRE-CREATION 
  src/mem/protocol/Network_test-dir.sm PRE-CREATION 
  src/mem/protocol/Network_test-msg.sm PRE-CREATION 
  src/mem/protocol/Network_test.slicc PRE-CREATION 
  src/mem/protocol/SConsopts 89cd8302abd3 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.hh 89cd8302abd3 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.cc 89cd8302abd3 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.py 89cd8302abd3 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 89cd8302abd3 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 89cd8302abd3 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
89cd8302abd3 
  src/mem/ruby/system/Sequencer.hh 89cd8302abd3 
  src/mem/ruby/system/Sequencer.cc 89cd8302abd3 
  src/mem/ruby/system/Sequencer.py 89cd8302abd3 

Diff: http://reviews.m5sim.org/r/561/diff


Testing
---

Testing done with garnet and simple networks. I will update config assumptions 
etc on the wiki.


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: This patch makes garnet use the info about active and inactive vnets during allocation and power estimations etc

2011-03-15 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/585/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

This patch makes garnet use the info about active and inactive vnets during 
allocation and power estimations etc


Diffs
-

  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh 6c9b532da0a6 
  src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/Router.hh 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/Router.cc 6c9b532da0a6 
  src/mem/ruby/network/orion/NetworkPower.cc 6c9b532da0a6 

Diff: http://reviews.m5sim.org/r/585/diff


Testing
---

using Network_test


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: fix garnet flexible pipeline

2011-03-15 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/584/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

Minor fixes to garnet flexible pipeline + some more stats.


Diffs
-

  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/Router.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/flit.cc 6c9b532da0a6 

Diff: http://reviews.m5sim.org/r/584/diff


Testing
---

using Network_test


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Network Tester Patch

2011-03-15 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/561/
---

(Updated 2011-03-15 01:14:34.080951)


Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Changes
---

addressed Brad's comments.
Specifically: removed second physical memory from ruby_network_tester.py, and 
added comments in networktest.cc and Network_test-cache/dir.sm files


Summary
---

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.


Diffs (updated)
-

  build_opts/ALPHA_SE_Network_test PRE-CREATION 
  configs/example/ruby_network_test.py PRE-CREATION 
  configs/ruby/Network_test.py PRE-CREATION 
  src/cpu/testers/networktest/NetworkTest.py PRE-CREATION 
  src/cpu/testers/networktest/SConscript PRE-CREATION 
  src/cpu/testers/networktest/networktest.hh PRE-CREATION 
  src/cpu/testers/networktest/networktest.cc PRE-CREATION 
  src/mem/protocol/Network_test-cache.sm PRE-CREATION 
  src/mem/protocol/Network_test-dir.sm PRE-CREATION 
  src/mem/protocol/Network_test-msg.sm PRE-CREATION 
  src/mem/protocol/Network_test.slicc PRE-CREATION 
  src/mem/protocol/SConsopts 6c9b532da0a6 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.hh 6c9b532da0a6 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.py 6c9b532da0a6 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 6c9b532da0a6 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
6c9b532da0a6 
  src/mem/ruby/system/Sequencer.hh 6c9b532da0a6 
  src/mem/ruby/system/Sequencer.cc 6c9b532da0a6 
  src/mem/ruby/system/Sequencer.py 6c9b532da0a6 

Diff: http://reviews.m5sim.org/r/561/diff


Testing
---

Testing done with garnet and simple networks. I will update config assumptions 
etc on the wiki.


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Network Tester Patch

2011-03-11 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/561/
---

(Updated 2011-03-11 09:33:50.616494)


Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

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.


Diffs
-

  build_opts/ALPHA_SE_Network_test PRE-CREATION 
  configs/example/ruby_network_test.py PRE-CREATION 
  configs/ruby/Network_test.py PRE-CREATION 
  src/cpu/testers/networktest/NetworkTest.py PRE-CREATION 
  src/cpu/testers/networktest/SConscript PRE-CREATION 
  src/cpu/testers/networktest/networktest.hh PRE-CREATION 
  src/cpu/testers/networktest/networktest.cc PRE-CREATION 
  src/mem/protocol/Network_test-cache.sm PRE-CREATION 
  src/mem/protocol/Network_test-dir.sm PRE-CREATION 
  src/mem/protocol/Network_test-msg.sm PRE-CREATION 
  src/mem/protocol/Network_test.slicc PRE-CREATION 
  src/mem/protocol/SConsopts 159c07f22c8e 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.hh 159c07f22c8e 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.cc 159c07f22c8e 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.py 159c07f22c8e 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 159c07f22c8e 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 159c07f22c8e 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
159c07f22c8e 
  src/mem/ruby/system/Sequencer.hh 159c07f22c8e 
  src/mem/ruby/system/Sequencer.cc 159c07f22c8e 
  src/mem/ruby/system/Sequencer.py 159c07f22c8e 

Diff: http://reviews.m5sim.org/r/561/diff


Testing
---

Testing done with garnet and simple networks. I will update config assumptions 
etc on the wiki.


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: minor fixes to garnet flexible pipeline code

2011-03-11 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/562/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, Nathan 
Binkert, and Brad Beckmann.


Summary
---

minor fixes to garnet flexible pipeline code


Diffs
-

  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh 04ced731345f 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 04ced731345f 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
04ced731345f 
  src/mem/ruby/network/garnet/flexible-pipeline/Router.cc 04ced731345f 
  src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 04ced731345f 
  src/mem/ruby/network/garnet/flexible-pipeline/flit.cc 04ced731345f 

Diff: http://reviews.m5sim.org/r/562/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: Network Tester Patch

2011-03-11 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/561/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

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.


Diffs
-

  build_opts/ALPHA_SE_Network_test PRE-CREATION 
  configs/example/ruby_network_test.py PRE-CREATION 
  configs/ruby/Network_test.py PRE-CREATION 
  src/cpu/testers/networktest/NetworkTest.py PRE-CREATION 
  src/cpu/testers/networktest/SConscript PRE-CREATION 
  src/cpu/testers/networktest/networktest.hh PRE-CREATION 
  src/cpu/testers/networktest/networktest.cc PRE-CREATION 
  src/mem/protocol/Network_test-cache.sm PRE-CREATION 
  src/mem/protocol/Network_test-dir.sm PRE-CREATION 
  src/mem/protocol/Network_test-msg.sm PRE-CREATION 
  src/mem/protocol/Network_test.slicc PRE-CREATION 
  src/mem/protocol/SConsopts 159c07f22c8e 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.hh 159c07f22c8e 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.cc 159c07f22c8e 
  src/mem/ruby/network/garnet/BaseGarnetNetwork.py 159c07f22c8e 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 159c07f22c8e 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 159c07f22c8e 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
159c07f22c8e 
  src/mem/ruby/system/Sequencer.hh 159c07f22c8e 
  src/mem/ruby/system/Sequencer.cc 159c07f22c8e 
  src/mem/ruby/system/Sequencer.py 159c07f22c8e 

Diff: http://reviews.m5sim.org/r/561/diff


Testing
---

Testing done with garnet and simple networks. I will update config assumptions 
etc on the wiki.


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: MOESI_CMP_token: removed unused message fields

2011-02-06 Thread Tushar Krishna
changeset b3d642f01495 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=b3d642f01495
description:
MOESI_CMP_token: removed unused message fields

diffstat:

 src/mem/protocol/MOESI_CMP_token-msg.sm |  6 --
 1 files changed, 0 insertions(+), 6 deletions(-)

diffs (32 lines):

diff -r bc39c93a5519 -r b3d642f01495 src/mem/protocol/MOESI_CMP_token-msg.sm
--- a/src/mem/protocol/MOESI_CMP_token-msg.sm   Sun Feb 06 22:14:19 2011 -0800
+++ b/src/mem/protocol/MOESI_CMP_token-msg.sm   Sun Feb 06 22:14:19 2011 -0800
@@ -76,9 +76,7 @@
   Address Address, desc="Physical address for this request";
   PersistentRequestType Type,  desc="Type of starvation request";
   MachineID Requestor,desc="Node who initiated the request";
-  MachineType RequestorMachine,   desc="Type of machine who requested";
   NetDest Destination, desc="Destination set";
-  MachineType DestMachine, desc="type of destination component";
   MessageSizeType MessageSize, desc="size category of the message";
   AccessModeType AccessMode,desc="user/supervisor access type";
   PrefetchBit Prefetch, desc="Is this a prefetch request";
@@ -89,8 +87,6 @@
   Address Address, desc="Physical address for this request";
   CoherenceRequestType Type,   desc="Type of request (GetS, GetX, PutX, etc)";
   MachineID Requestor,desc="Node who initiated the request";
-  MachineType RequestorMachine,   desc="Type of machine who requested";
-  MachineType DestMachine,desc="Type of destination machine";
   NetDest Destination, desc="Multicast destination mask";
   bool isLocal,desc="Is this request from a local L1";
   int RetryNum,desc="retry sequence number";
@@ -104,9 +100,7 @@
   Address Address, desc="Physical address for this request";
   CoherenceResponseType Type,  desc="Type of response (Ack, Data, etc)";
   MachineID Sender,   desc="Node who sent the data";
-  MachineType SenderMachine, desc="component that is sending";
   NetDest Destination, desc="Node to whom the data is sent";
-  MachineType DestMachine, desc="What component receives the data";
   int Tokens,  desc="Number of tokens being transfered for 
this line";
   DataBlock DataBlk,   desc="data for the cache line";
   bool Dirty,  desc="Is the data dirty (different than 
memory)?";
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: garnet: separate data and ctrl VCs

2011-02-06 Thread Tushar Krishna
changeset 8439266ec9e5 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=8439266ec9e5
description:
garnet: separate data and ctrl VCs

Separate data VCs and ctrl VCs in garnet, as ctrl VCs have 1 buffer per 
VC,
while data VCs have > 1 buffers per VC. This is for correct power 
estimations.

diffstat:

 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc |   3 +-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh |   6 ++-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.py |   3 +-
 src/mem/ruby/network/garnet/NetworkHeader.hh |   1 +
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc|   6 +++
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh|  16 
++
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc |   7 
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc   |   8 -
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh   |  10 ++
 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc   |   1 +
 10 files changed, 56 insertions(+), 5 deletions(-)

diffs (169 lines):

diff -r 48d31b577847 -r 8439266ec9e5 
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Sun Feb 06 22:14:16 
2011 -0800
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Sun Feb 06 22:14:16 
2011 -0800
@@ -36,7 +36,8 @@
 m_flit_size = p->flit_size;
 m_number_of_pipe_stages = p->number_of_pipe_stages;
 m_vcs_per_class = p->vcs_per_class;
-m_buffer_size = p->buffer_size;
+m_buffers_per_data_vc = p->buffers_per_data_vc;
+m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc;
 m_using_network_testing = p->using_network_testing;
 }
 
diff -r 48d31b577847 -r 8439266ec9e5 
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Sun Feb 06 22:14:16 
2011 -0800
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Sun Feb 06 22:14:16 
2011 -0800
@@ -51,13 +51,15 @@
 int getFlitSize() {return m_flit_size; }
 int getNumPipeStages() {return m_number_of_pipe_stages; }
 int getVCsPerClass() {return m_vcs_per_class; }
-int getBufferSize() {return m_buffer_size; }
+int getBuffersPerDataVC() {return m_buffers_per_data_vc; }
+int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; }
 
   protected:
 int m_flit_size;
 int m_number_of_pipe_stages;
 int m_vcs_per_class;
-int m_buffer_size;
+int m_buffers_per_data_vc;
+int m_buffers_per_ctrl_vc;
 bool m_using_network_testing;
 };
 
diff -r 48d31b577847 -r 8439266ec9e5 
src/mem/ruby/network/garnet/BaseGarnetNetwork.py
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.py  Sun Feb 06 22:14:16 
2011 -0800
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.py  Sun Feb 06 22:14:16 
2011 -0800
@@ -37,5 +37,6 @@
 flit_size = Param.Int(16, "flit size in bytes")
 number_of_pipe_stages = Param.Int(4, "router pipeline stages");
 vcs_per_class = Param.Int(4, "virtual channels per message class");
-buffer_size = Param.Int(4, "buffer size in bytes");
+buffers_per_data_vc = Param.Int(4, "buffers per data virtual channel");
+buffers_per_ctrl_vc = Param.Int(1, "buffers per ctrl virtual channel");
 using_network_testing = Param.Bool(False, "network testing enable");
diff -r 48d31b577847 -r 8439266ec9e5 
src/mem/ruby/network/garnet/NetworkHeader.hh
--- a/src/mem/ruby/network/garnet/NetworkHeader.hh  Sun Feb 06 22:14:16 
2011 -0800
+++ b/src/mem/ruby/network/garnet/NetworkHeader.hh  Sun Feb 06 22:14:16 
2011 -0800
@@ -36,6 +36,7 @@
 
 enum flit_type {HEAD_, BODY_, TAIL_, HEAD_TAIL_, NUM_FLIT_TYPE_};
 enum VC_state_type {IDLE_, VC_AB_, ACTIVE_, NUM_VC_STATE_TYPE_};
+enum VNET_type {CTRL_VNET_, DATA_VNET_, NUM_VNET_TYPE_};
 enum flit_stage {I_, VA_, SA_, ST_, LT_, NUM_FLIT_STAGE_};
 
 #define INFINITE_ 1
diff -r 48d31b577847 -r 8439266ec9e5 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sun Feb 
06 22:14:16 2011 -0800
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sun Feb 
06 22:14:16 2011 -0800
@@ -107,6 +107,12 @@
 for (int i = 0; i < m_router_ptr_vector.size(); i++) {
 m_router_ptr_vector[i]->init();
 }
+
+m_vnet_type.resize(m_virtual_networks);
+for (int i = 0; i < m_vnet_type.size(); i++) {
+m_vnet_type[i] = CTRL_VNET_;
+// DATA_VNET_ updated later based on traffic
+}
 }
 
 GarnetNetwork_d::~GarnetNetwork_d()
diff -r 48d31b577847 -r 8439266ec9e5 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Sun Feb 
06 22:14:16 2011 -0800
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Sun Feb 
06 22:14:16 2011 -0800
@@ -68,6 +68,21 @@
 void printConfig(st

[m5-dev] changeset in m5: garnet: added orion2.0 for network power calcul...

2011-02-06 Thread Tushar Krishna
changeset 46e9b3bf447f in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=46e9b3bf447f
description:
garnet: added orion2.0 for network power calculation

diffstat:

 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc   |15 +-
 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh   |12 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh | 3 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc  |30 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh  |13 +-
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc |13 +-
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh |11 +-
 src/mem/ruby/network/orion/Allocator/Arbiter.cc |93 +
 src/mem/ruby/network/orion/Allocator/Arbiter.hh |87 +
 src/mem/ruby/network/orion/Allocator/MatrixArbiter.cc   |   251 +
 src/mem/ruby/network/orion/Allocator/MatrixArbiter.hh   |71 +
 src/mem/ruby/network/orion/Allocator/RRArbiter.cc   |   238 +
 src/mem/ruby/network/orion/Allocator/RRArbiter.hh   |72 +
 src/mem/ruby/network/orion/Allocator/SConscript |38 +
 src/mem/ruby/network/orion/Allocator/SWAllocator.cc |   175 +
 src/mem/ruby/network/orion/Allocator/SWAllocator.hh |95 +
 src/mem/ruby/network/orion/Allocator/VCAllocator.cc |   302 +
 src/mem/ruby/network/orion/Allocator/VCAllocator.hh |   123 +
 src/mem/ruby/network/orion/Buffer/AmpUnit.cc|72 +
 src/mem/ruby/network/orion/Buffer/AmpUnit.hh|73 +
 src/mem/ruby/network/orion/Buffer/BitlineUnit.cc|   199 +
 src/mem/ruby/network/orion/Buffer/BitlineUnit.hh|93 +
 src/mem/ruby/network/orion/Buffer/Buffer.cc |   187 +
 src/mem/ruby/network/orion/Buffer/Buffer.hh |96 +
 src/mem/ruby/network/orion/Buffer/DecoderUnit.cc|   171 +
 src/mem/ruby/network/orion/Buffer/DecoderUnit.hh|88 +
 src/mem/ruby/network/orion/Buffer/MemUnit.cc|   132 +
 src/mem/ruby/network/orion/Buffer/MemUnit.hh|80 +
 src/mem/ruby/network/orion/Buffer/OutdrvUnit.cc |   175 +
 src/mem/ruby/network/orion/Buffer/OutdrvUnit.hh |89 +
 src/mem/ruby/network/orion/Buffer/PrechargeUnit.cc  |   136 +
 src/mem/ruby/network/orion/Buffer/PrechargeUnit.hh  |90 +
 src/mem/ruby/network/orion/Buffer/Register.cc   |   113 +
 src/mem/ruby/network/orion/Buffer/Register.hh   |73 +
 src/mem/ruby/network/orion/Buffer/SConscript|43 +
 src/mem/ruby/network/orion/Buffer/SRAM.cc   |   271 +
 src/mem/ruby/network/orion/Buffer/SRAM.hh   |   120 +
 src/mem/ruby/network/orion/Buffer/WordlineUnit.cc   |   150 +
 src/mem/ruby/network/orion/Buffer/WordlineUnit.hh   |87 +
 src/mem/ruby/network/orion/Clock.cc |   183 +
 src/mem/ruby/network/orion/Clock.hh |77 +
 src/mem/ruby/network/orion/ConfigFile.cc|   170 +
 src/mem/ruby/network/orion/ConfigFile.hh|   252 +
 src/mem/ruby/network/orion/Crossbar/Crossbar.cc |   393 ++
 src/mem/ruby/network/orion/Crossbar/Crossbar.hh |   130 +
 src/mem/ruby/network/orion/Crossbar/MatrixCrossbar.cc   |   152 +
 src/mem/ruby/network/orion/Crossbar/MatrixCrossbar.hh   |73 +
 src/mem/ruby/network/orion/Crossbar/MultreeCrossbar.cc  |   162 +
 src/mem/ruby/network/orion/Crossbar/MultreeCrossbar.hh  |69 +
 src/mem/ruby/network/orion/Crossbar/SConscript  |36 +
 src/mem/ruby/network/orion/FlipFlop.cc  |   138 +
 src/mem/ruby/network/orion/FlipFlop.hh  |87 +
 src/mem/ruby/network/orion/NetworkPower.cc  |   593 +-
 src/mem/ruby/network/orion/NetworkPower.hh  |21 +-
 src/mem/ruby/network/orion/OrionConfig.cc   |   201 +
 src/mem/ruby/network/orion/OrionConfig.hh   |   158 +
 src/mem/ruby/network/orion/OrionLink.cc |98 +
 src/mem/ruby/network/orion/OrionLink.hh |72 +
 src/mem/ruby/network/orion/OrionRouter.cc   |   495 ++
 src/mem/ruby/network/orion/OrionRouter.hh   |   119 +
 src/mem/ruby/network/orion/SConscript   |23 +-
 src/mem/ruby/network/orion/SIM_port.hh  |   172 -
 src/mem/ruby/network/orion/SIM_power.hh |   385 -
 src/mem/ruby/network/orion/SIM_power_test.hh|   285 -
 src/mem/ruby/network/orion/TechParameter.cc |  1476 +++
 src/mem/ruby/network/orion/TechParameter.hh |   414 ++
 src/mem/ruby/network/orion/Type.hh  |45 +
 src/mem/ruby/network/orion/Wire.c

[m5-dev] changeset in m5: Fix x86 XCHG macro-op to use locked micro-ops f...

2010-07-21 Thread Tushar Krishna
changeset a75564db03c3 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=a75564db03c3
description:
Fix x86 XCHG macro-op to use locked micro-ops for all memory accesses

diffstat:

 src/arch/x86/isa/insts/general_purpose/data_transfer/xchg.py |  16 ++--
 1 files changed, 8 insertions(+), 8 deletions(-)

diffs (43 lines):

diff -r b543b8e5fcbc -r a75564db03c3 
src/arch/x86/isa/insts/general_purpose/data_transfer/xchg.py
--- a/src/arch/x86/isa/insts/general_purpose/data_transfer/xchg.py  Sat Jul 
17 08:56:49 2010 -0700
+++ b/src/arch/x86/isa/insts/general_purpose/data_transfer/xchg.py  Wed Jul 
21 09:55:57 2010 -0700
@@ -50,31 +50,31 @@
 
 def macroop XCHG_R_M
 {
-ldst t1, seg, sib, disp
-st reg, seg, sib, disp
+ldstl t1, seg, sib, disp
+stul reg, seg, sib, disp
 mov reg, reg, t1
 };
 
 def macroop XCHG_R_P
 {
 rdip t7
-ldst t1, seg, riprel, disp
-st reg, seg, riprel, disp
+ldstl t1, seg, riprel, disp
+stul reg, seg, riprel, disp
 mov reg, reg, t1
 };
 
 def macroop XCHG_M_R
 {
-ldst t1, seg, sib, disp
-st reg, seg, sib, disp
+ldstl t1, seg, sib, disp
+stul reg, seg, sib, disp
 mov reg, reg, t1
 };
 
 def macroop XCHG_P_R
 {
 rdip t7
-ldst t1, seg, riprel, disp
-st reg, seg, riprel, disp
+ldstl t1, seg, riprel, disp
+stul reg, seg, riprel, disp
 mov reg, reg, t1
 };
 
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: Fix x86 XCHG macro-op to use locked micro-ops for all memory accesses

2010-07-20 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/59/
---

Review request for Default.


Summary
---

Fix x86 XCHG macro-op to use locked micro-ops for all memory accesses


Diffs
-

  src/arch/x86/isa/insts/general_purpose/data_transfer/xchg.py b543b8e5fcbc 

Diff: http://reviews.m5sim.org/r/59/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: NetworkMessage copy constructor fix

2010-07-08 Thread Tushar Krishna
changeset 2e8e5bb0b4c2 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=2e8e5bb0b4c2
description:
NetworkMessage copy constructor fix

diffstat:

 src/mem/ruby/slicc_interface/NetworkMessage.hh |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r 249f174e6f37 -r 2e8e5bb0b4c2 
src/mem/ruby/slicc_interface/NetworkMessage.hh
--- a/src/mem/ruby/slicc_interface/NetworkMessage.hhMon Jul 05 22:57:23 
2010 -0700
+++ b/src/mem/ruby/slicc_interface/NetworkMessage.hhThu Jul 08 16:18:20 
2010 -0700
@@ -50,7 +50,8 @@
 { }
 
 NetworkMessage(const NetworkMessage &other)
-: Message(other), m_internal_dest_valid(other.m_internal_dest_valid)
+: Message(other), m_internal_dest(other.m_internal_dest),
+  m_internal_dest_valid(other.m_internal_dest_valid)
 { }
 
 virtual ~NetworkMessage() { }
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: NetworkMessage copy constructor fix. Unless I hear otherwise, I will check it in, in a couple of days.

2010-07-06 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/30/
---

(Updated 2010-07-06 15:19:27.721787)


Review request for Default.


Summary (updated)
---

NetworkMessage copy constructor fix


Diffs
-

  src/mem/ruby/slicc_interface/NetworkMessage.hh 3006bde825fd 

Diff: http://reviews.m5sim.org/r/30/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: garnet: Added topology print function to Garnet printStats. Unless I hear otherwise, I will check it in, in a couple of days.

2010-07-06 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/33/
---

(Updated 2010-07-06 15:17:25.503373)


Review request for Default.


Summary (updated)
---

garnet: Added topology print function to Garnet printStats.
This prints out ruby cache and directory event counts and transactions.
[This line also exists in simple/SimpleNetwork.cc but somehow got deleted from 
the Garnet network].


Diffs
-

  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 249f174e6f37 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 249f174e6f37 

Diff: http://reviews.m5sim.org/r/33/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: garnet: Added topology print function to Garnet printStats

2010-07-06 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/33/
---

Review request for Default.


Summary
---

garnet: Added topology print function to Garnet printStats.
This prints out ruby cache and directory event counts and transactions.
[This line also exists in simple/SimpleNetwork.cc but somehow got deleted from 
the Garnet network].


Diffs
-

  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 249f174e6f37 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 249f174e6f37 

Diff: http://reviews.m5sim.org/r/33/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: NetworkMessage copy constructor fix

2010-07-06 Thread Tushar Krishna

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/30/
---

Review request for Default.


Summary
---

NetworkMessage copy constructor fix


Diffs
-

  src/mem/ruby/slicc_interface/NetworkMessage.hh 3006bde825fd 

Diff: http://reviews.m5sim.org/r/30/diff


Testing
---


Thanks,

Tushar

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: style: updated garnet to match M5 coding style

2010-07-02 Thread Tushar Krishna
changeset 3006bde825fd in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=3006bde825fd
description:
style: updated garnet to match M5 coding style

diffstat:

 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  |3 +-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  |   11 +-
 src/mem/ruby/network/garnet/NetworkHeader.hh  |7 +-
 src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh|   15 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc |  418 +++---
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh |  123 +-
 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc |   89 +-
 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh |  229 ++-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc  |  486 

 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh  |   80 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc   |   77 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh   |   67 +-
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc|   10 +-
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh|   79 +-
 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc|   92 +-
 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh|   93 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc|  188 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh|   83 +-
 src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.cc   |   69 +-
 src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.hh   |   29 +-
 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc   |  285 ++--
 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh   |   72 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc|   75 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh|   56 +-
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc   |  346 +++---
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh   |   85 +-
 src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc|   67 +-
 src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh|  124 +-
 src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.cc|   58 +-
 src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh|   73 +-
 src/mem/ruby/network/garnet/fixed-pipeline/flit_d.cc  |  120 +-
 src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh  |  187 +-
 src/mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh |   20 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc|  346 +++---
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh|   85 +-
 src/mem/ruby/network/garnet/flexible-pipeline/InVcState.cc|   40 +-
 src/mem/ruby/network/garnet/flexible-pipeline/InVcState.hh|   37 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc |  426 
---
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh |   88 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc  |  135 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh  |   74 +-
 src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.cc   |   24 +-
 src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.hh   |   27 +-
 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc   |  553 
+
 src/mem/ruby/network/garnet/flexible-pipeline/Router.hh   |   88 +-
 src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc|8 +-
 src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh|   23 +-
 src/mem/ruby/network/garnet/flexible-pipeline/flit.cc |  137 +-
 src/mem/ruby/network/garnet/flexible-pipeline/flit.hh |   70 +-
 src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.cc   |   81 +-
 src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh   |   41 +-
 src/mem/ruby/network/garnet/flexible-pipeline/netconfig.defaults  |8 -
 52 files changed, 3125 insertions(+), 2982 deletions(-)

diffs (truncated from 7693 to 300 lines):

diff -r b285acfcd797 -r 3006bde825fd 
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Mon Jun 28 07:33:33 
2010 -0400
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Tue Jun 22 15:36:07 
2010 -0700
@@ -40,7 +40,8 @@
 m_using_network_testing = p->using_network_testing;
 }
 
-void BaseGarnetNetwork::init()
+void
+BaseGarnetNetwork::init()
 {
 Network::init();
 }
diff -r b285acfcd797 -r 3006bde825fd 
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Mon Jun 28 07:33:33 
2010 -0400
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Tue Jun 2

[m5-dev] changeset in m5: ruby/network data_msg_size bug fix with updated...

2009-08-11 Thread Tushar Krishna
changeset 04a90b404da6 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=04a90b404da6
description:
ruby/network data_msg_size bug fix with updated stats

diffstat:

5 files changed, 465 insertions(+), 465 deletions(-)
src/mem/ruby/config/defaults.rb|2 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/ruby.stats |  814 +-
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/simerr |   66 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/simout |   10 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/stats.txt  |   38 

diffs (truncated from 1269 to 300 lines):

diff -r be123e27612f -r 04a90b404da6 src/mem/ruby/config/defaults.rb
--- a/src/mem/ruby/config/defaults.rb   Tue Aug 11 12:22:41 2009 -0700
+++ b/src/mem/ruby/config/defaults.rb   Tue Aug 11 15:19:04 2009 -0700
@@ -39,7 +39,7 @@
   default_param :protocol_trace, Boolean, false
 
   # a string for filtering debugging output (for all g_debug vars see Debug.h)
-  default_param :filter_string, String, ""
+  default_param :filter_string, String, "none"
 
   # filters debugging messages based on priority (low, med, high)
   default_param :verbosity_string, String, "none"
diff -r be123e27612f -r 04a90b404da6 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/ruby.stats
--- a/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/ruby.statsTue Aug 
11 12:22:41 2009 -0700
+++ b/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/ruby.statsTue Aug 
11 15:19:04 2009 -0700
@@ -386,34 +386,34 @@
  End RubySystem Configuration Print 
 
 
-Real time: Aug/05/2009 14:05:27
+Real time: Aug/11/2009 14:40:39
 
 Profiler Stats
 --
-Elapsed_time_in_seconds: 1657
-Elapsed_time_in_minutes: 27.6167
-Elapsed_time_in_hours: 0.460278
-Elapsed_time_in_days: 0.0191782
+Elapsed_time_in_seconds: 3281
+Elapsed_time_in_minutes: 54.6833
+Elapsed_time_in_hours: 0.911389
+Elapsed_time_in_days: 0.0379745
 
-Virtual_time_in_seconds: 1574.85
-Virtual_time_in_minutes: 26.2475
-Virtual_time_in_hours:   0.437458
-Virtual_time_in_days:0.0182274
+Virtual_time_in_seconds: 2972.6
+Virtual_time_in_minutes: 49.5433
+Virtual_time_in_hours:   0.825722
+Virtual_time_in_days:0.0344051
 
-Ruby_current_time: 31871403
+Ruby_current_time: 31749699
 Ruby_start_time: 1
-Ruby_cycles: 31871402
+Ruby_cycles: 31749698
 
-mbytes_resident: 150.73
-mbytes_total: 1502.58
-resident_ratio: 0.10032
+mbytes_resident: 151.695
+mbytes_total: 151.898
+resident_ratio: 0.998688
 
 Total_misses: 0
 total_misses: 0 [ 0 0 0 0 0 0 0 0 ]
 user_misses: 0 [ 0 0 0 0 0 0 0 0 ]
 supervisor_misses: 0 [ 0 0 0 0 0 0 0 0 ]
 
-ruby_cycles_executed: 254971224 [ 31871403 31871403 31871403 31871403 31871403 
31871403 31871403 31871403 ]
+ruby_cycles_executed: 253997592 [ 31749699 31749699 31749699 31749699 31749699 
31749699 31749699 31749699 ]
 
 transactions_started: 0 [ 0 0 0 0 0 0 0 0 ]
 transactions_ended: 0 [ 0 0 0 0 0 0 0 0 ]
@@ -422,40 +422,40 @@
 
 
 Memory control MemoryControl_0:
-  memory_total_requests: 1389969
-  memory_reads: 695049
-  memory_writes: 694795
-  memory_refreshes: 66399
-  memory_total_request_delays: 426018769
-  memory_delays_per_request: 306.495
-  memory_delays_in_input_queue: 90894877
-  memory_delays_behind_head_of_bank_queue: 255108229
-  memory_delays_stalled_at_head_of_bank_queue: 80015663
-  memory_stalls_for_bank_busy: 12108953
+  memory_total_requests: 1384962
+  memory_reads: 692528
+  memory_writes: 692278
+  memory_refreshes: 66146
+  memory_total_request_delays: 423608080
+  memory_delays_per_request: 305.863
+  memory_delays_in_input_queue: 89056027
+  memory_delays_behind_head_of_bank_queue: 254719145
+  memory_delays_stalled_at_head_of_bank_queue: 79832908
+  memory_stalls_for_bank_busy: 12075653
   memory_stalls_for_random_busy: 0
-  memory_stalls_for_anti_starvation: 24487499
-  memory_stalls_for_arbitration: 15539710
-  memory_stalls_for_bus: 20434932
+  memory_stalls_for_anti_starvation: 24439291
+  memory_stalls_for_arbitration: 15511923
+  memory_stalls_for_bus: 20392505
   memory_stalls_for_tfaw: 0
-  memory_stalls_for_read_write_turnaround: 6003845
-  memory_stalls_for_read_read_turnaround: 1440724
-  accesses_per_bank: 43357  44015  43781  43810  43753  43615  43533  43621  
43760  43473  43392  43592  43408  43516  43431  43583  43408  43238  43387  
43265  43461  43404  43268  43371  43341  43146  43143  43177  43023  43329  
42971  43397  
+  memory_stalls_for_read_write_turnaround: 5977752
+  memory_stalls_for_read_read_turnaround: 1435784
+  accesses_per_bank: 43368  43904  43706  43665  43508  43366  43384  43354  
43590  43325  43301  43542  43264  43288  43218  43319  43219  43118  43315  
43079  43237  43057  43107  43328  43242  42939  43225  42922  42943  43105  
42885  43139  
 
 Busy Controller Counts:
-L1Cache-0:0  L1Cache-1:0  L1Cache-2:0  L1Cache-3:0  L1Cache-4:0  L1Cache-5:0  
L1Cache-6:0  L1Cache-7:2  
+L1Cache-0:0  L1Cache-1:0

[m5-dev] changeset in m5: bug fix for data_msg_size in network/Network.cc

2009-08-11 Thread Tushar Krishna
changeset 1fa51760a963 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=1fa51760a963
description:
bug fix for data_msg_size in network/Network.cc

diffstat:

17 files changed, 561 insertions(+), 559 deletions(-)
src/mem/protocol/MOESI_CMP_directory-L2cache.sm   |2 
src/mem/protocol/MOESI_CMP_token-L2cache.sm   |2 
src/mem/protocol/MSI_MOSI_CMP_directory-L2cache.sm|2 
src/mem/protocol/RubySlicc_Util.sm|1 
src/mem/ruby/config/cfg.rb|2 
src/mem/ruby/config/defaults.rb   |2 
src/mem/ruby/network/Network.cc   |   39 
src/mem/ruby/network/Network.hh   |   41 
src/mem/ruby/network/garnet-fixed-pipeline/NetworkInterface_d.cc  |2 
src/mem/ruby/network/garnet-flexible-pipeline/NetworkInterface.cc |2 
src/mem/ruby/network/simple/Switch.cc |2 
src/mem/ruby/network/simple/Throttle.cc   |4 
src/mem/ruby/slicc_interface/RubySlicc_Util.hh|5 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/ruby.stats|  830 
+-
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/simerr|  132 -
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/simout|   12 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/stats.txt |   40 

diffs (truncated from 1600 to 300 lines):

diff -r 0e78ffeebffd -r 1fa51760a963 
src/mem/protocol/MOESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MOESI_CMP_directory-L2cache.sm   Tue Aug 04 09:37:27 
2009 -0700
+++ b/src/mem/protocol/MOESI_CMP_directory-L2cache.sm   Fri Aug 07 13:59:40 
2009 -0700
@@ -1389,7 +1389,7 @@
   action(uu_profileMiss, "\u", desc="Profile the demand miss") {
 peek(L1requestNetwork_in, RequestMsg) {
   // AccessModeType not implemented
-  profile_L2Cache_miss(convertToGenericType(in_msg.Type), 
in_msg.AccessMode, MessageSizeTypeToInt(in_msg.MessageSize),  in_msg.Prefetch, 
machineIDToNodeID(in_msg.Requestor));
+  //profile_L2Cache_miss(convertToGenericType(in_msg.Type), 
in_msg.AccessMode, MessageSizeTypeToInt(in_msg.MessageSize),  in_msg.Prefetch, 
machineIDToNodeID(in_msg.Requestor));
 }
   }
 
diff -r 0e78ffeebffd -r 1fa51760a963 src/mem/protocol/MOESI_CMP_token-L2cache.sm
--- a/src/mem/protocol/MOESI_CMP_token-L2cache.sm   Tue Aug 04 09:37:27 
2009 -0700
+++ b/src/mem/protocol/MOESI_CMP_token-L2cache.sm   Fri Aug 07 13:59:40 
2009 -0700
@@ -916,7 +916,7 @@
   action(uu_profileMiss, "\u", desc="Profile the demand miss") {
 peek(L1requestNetwork_in, RequestMsg) {
   // AccessModeType not implemented
-  profile_L2Cache_miss(convertToGenericType(in_msg.Type), 
in_msg.AccessMode, MessageSizeTypeToInt(in_msg.MessageSize),  in_msg.Prefetch, 
machineIDToNodeID(in_msg.Requestor));
+  //profile_L2Cache_miss(convertToGenericType(in_msg.Type), 
in_msg.AccessMode, MessageSizeTypeToInt(in_msg.MessageSize),  in_msg.Prefetch, 
machineIDToNodeID(in_msg.Requestor));
 }
   }
 
diff -r 0e78ffeebffd -r 1fa51760a963 
src/mem/protocol/MSI_MOSI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MSI_MOSI_CMP_directory-L2cache.smTue Aug 04 
09:37:27 2009 -0700
+++ b/src/mem/protocol/MSI_MOSI_CMP_directory-L2cache.smFri Aug 07 
13:59:40 2009 -0700
@@ -978,7 +978,7 @@
 
   action(uu_profileMiss, "\u", desc="Profile the demand miss") {
 peek(L1RequestIntraChipL2Network_in, RequestMsg) {
-  profile_L2Cache_miss(convertToGenericType(in_msg.Type), 
in_msg.AccessMode, MessageSizeTypeToInt(in_msg.MessageSize), in_msg.Prefetch, 
L1CacheMachIDToProcessorNum(in_msg.RequestorMachId));
+  //profile_L2Cache_miss(convertToGenericType(in_msg.Type), 
in_msg.AccessMode, MessageSizeTypeToInt(in_msg.MessageSize), in_msg.Prefetch, 
L1CacheMachIDToProcessorNum(in_msg.RequestorMachId));
 }
   }
 
diff -r 0e78ffeebffd -r 1fa51760a963 src/mem/protocol/RubySlicc_Util.sm
--- a/src/mem/protocol/RubySlicc_Util.smTue Aug 04 09:37:27 2009 -0700
+++ b/src/mem/protocol/RubySlicc_Util.smFri Aug 07 13:59:40 2009 -0700
@@ -37,7 +37,6 @@
 NodeID intToID(int nodenum);
 int IDToInt(NodeID id);
 int addressToInt(Address addr);
-int MessageSizeTypeToInt(MessageSizeType size_type);
 bool multicast_retry();
 int numberOfNodes();
 int numberOfL1CachePerChip();
diff -r 0e78ffeebffd -r 1fa51760a963 src/mem/ruby/config/cfg.rb
--- a/src/mem/ruby/config/cfg.rbTue Aug 04 09:37:27 2009 -0700
+++ b/src/mem/ruby/config/cfg.rbFri Aug 07 13:59:40 2009 -0700
@@ -602,7 +602,7 @@
 vec += " buffer_size "+buffer_size.to_s
 vec += " link_latency "+adaptive_routing.to_s
 vec += " on_chip_latency "+on_chip_latency.to_s
-
+vec += " control_msg_size "+control_msg_size.to_s
   end
 
   def printTopology()
diff -r 0e78ffeebffd -r 1fa51760a963 src/mem/ruby/confi