[m5-dev] Files

2011-04-28 Thread K J
Hi all,

Can you please tell me where is the file "enums/OpClass.hh" included in
"src/cpu/op_class.hh"? Thank you.

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


Re: [m5-dev] Review Request: debug: fix help output

2011-04-28 Thread Nathan Binkert

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



src/base/debug.hh


I want a reference in the constructor for sure because I don't want people 
to pass NULL or anything like that.  Since I want a reference in the 
constructor, it's easier to have a reference here.


- Nathan


On 2011-04-28 16:48:33, Nathan Binkert wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/666/
> ---
> 
> (Updated 2011-04-28 16:48:33)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> debug: fix help output
> 
> 
> Diffs
> -
> 
>   src/base/debug.hh b02bca5aed04 
>   src/base/debug.cc b02bca5aed04 
>   src/python/m5/debug.py b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/666/diff
> 
> 
> Testing
> ---
> 
> --debug-help works for me now
> 
> 
> Thanks,
> 
> Nathan
> 
>

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


[m5-dev] changeset in m5: regress: updates after changing ruby network ba...

2011-04-28 Thread Brad Beckmann
changeset dba41dbef071 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=dba41dbef071
description:
regress: updates after changing ruby network bandwidth

diffstat:

 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/config.ini
  |76 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/ruby.stats
  |   110 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/simout
  |10 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/stats.txt
   |16 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/config.ini
 |76 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/ruby.stats
 |   256 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/simout
 |10 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/stats.txt
  |14 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/config.ini
 |76 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/ruby.stats
 |   373 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/simout 
|10 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/stats.txt
  |16 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/config.ini 
   |55 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/ruby.stats 
   |38 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simout
| 8 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/stats.txt 
| 8 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/config.ini 
|55 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/ruby.stats 
|48 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/simout 
| 8 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/stats.txt  
| 8 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/config.ini
  |76 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/ruby.stats
  |   102 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/simout
  |10 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/stats.txt
   |16 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/config.ini
 |76 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/ruby.stats
 |   262 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/simout
 |10 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/stats.txt
  |16 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/config.ini
 |76 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/ruby.stats
 |   302 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/simout 
|10 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/stats.txt
  |16 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/config.ini 
   |55 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/ruby.stats 
   |38 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/simout
| 8 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/stats.txt 
| 8 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/config.ini 
|55 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/ruby.stats 
|48 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/simout 
| 8 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/stats.txt  
| 8 +-
 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/config.ini
  |   221 +-
 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/ruby.stats
  |   714 ++--
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/simerr  
|   146 +-
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/simout  
|10 +-
 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/stats.txt
   |42 +-
 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/config.ini
 |   221 +-
 
tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/ruby.stats
 |  1052 
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_direct

[m5-dev] changeset in m5: garnet: removed flit_width from Routers

2011-04-28 Thread Brad Beckmann
changeset 89d0e7c17d1e in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=89d0e7c17d1e
description:
garnet: removed flit_width from Routers

diffstat:

 src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py  |  1 -
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc|  1 -
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh|  1 -
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py |  1 -
 src/mem/ruby/network/orion/NetworkPower.cc|  3 ++-
 5 files changed, 2 insertions(+), 5 deletions(-)

diffs (55 lines):

diff -r 39e42ccddd63 -r 89d0e7c17d1e 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py  Thu Apr 
28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py  Thu Apr 
28 17:18:14 2011 -0700
@@ -39,6 +39,5 @@
   "virtual channels per message class")
 virt_nets = Param.Int(Parent.number_of_virtual_networks,
   "number of virtual networks")
-flit_width = Param.Int(Parent.ni_flit_size, "flit width == flit size")
 
 
diff -r 39e42ccddd63 -r 89d0e7c17d1e 
src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.ccThu Apr 28 
17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.ccThu Apr 28 
17:18:14 2011 -0700
@@ -49,7 +49,6 @@
 m_virtual_networks = p->virt_nets;
 m_vc_per_vnet = p->vcs_per_class;
 m_num_vcs = m_virtual_networks * m_vc_per_vnet;
-m_flit_width = p->flit_width;
 
 m_routing_unit = new RoutingUnit_d(this);
 m_vc_alloc = new VCallocator_d(this);
diff -r 39e42ccddd63 -r 89d0e7c17d1e 
src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hhThu Apr 28 
17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hhThu Apr 28 
17:18:14 2011 -0700
@@ -96,7 +96,6 @@
   private:
 int m_virtual_networks, m_num_vcs, m_vc_per_vnet;
 GarnetNetwork_d *m_network_ptr;
-int m_flit_width;
 
 std::vector buf_read_count;
 std::vector buf_write_count;
diff -r 39e42ccddd63 -r 89d0e7c17d1e 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py Thu Apr 
28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py Thu Apr 
28 17:18:14 2011 -0700
@@ -39,6 +39,5 @@
   "virtual channels per message class")
 virt_nets = Param.Int(Parent.number_of_virtual_networks,
   "number of virtual networks")
-flit_width = Param.Int(Parent.ni_flit_size, "flit width == flit size")
 
 
diff -r 39e42ccddd63 -r 89d0e7c17d1e src/mem/ruby/network/orion/NetworkPower.cc
--- a/src/mem/ruby/network/orion/NetworkPower.ccThu Apr 28 17:18:14 
2011 -0700
+++ b/src/mem/ruby/network/orion/NetworkPower.ccThu Apr 28 17:18:14 
2011 -0700
@@ -96,7 +96,8 @@
 uint32_t num_vc_per_vclass = m_vc_per_vnet;
 uint32_t in_buf_per_data_vc = m_network_ptr->getBuffersPerDataVC();
 uint32_t in_buf_per_ctrl_vc = m_network_ptr->getBuffersPerCtrlVC();
-uint32_t flit_width = m_flit_width * 8; //flit width in bits
+//flit width in bits
+uint32_t flit_width = m_network_ptr->getNiFlitSize() * 8; 
 
 orion_rtr_ptr = new OrionRouter(
 num_in_port,
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: network: set the ExtLink bw to 16 bytes

2011-04-28 Thread Brad Beckmann
changeset 8743998edfd3 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=8743998edfd3
description:
network: set the ExtLink bw to 16 bytes

Therefore all links by default are 16 bytes wide and thus work with 
Garnet's
uniform link bandwidth assumption.

diffstat:

 src/mem/ruby/network/BasicLink.py  |   2 +-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc   |  35 ++
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh   |  13 +++
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |  32 -
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh  |  13 ---
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |  34 -
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh |  10 --
 7 files changed, 49 insertions(+), 90 deletions(-)

diffs (246 lines):

diff -r 89d0e7c17d1e -r 8743998edfd3 src/mem/ruby/network/BasicLink.py
--- a/src/mem/ruby/network/BasicLink.py Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/BasicLink.py Thu Apr 28 17:18:14 2011 -0700
@@ -45,7 +45,7 @@
 type = 'BasicExtLink'
 ext_node = Param.RubyController("External node")
 int_node = Param.BasicRouter("ID of internal node")
-bandwidth_factor = 64
+bandwidth_factor = 16
 
 class BasicIntLink(BasicLink):
 type = 'BasicIntLink'
diff -r 89d0e7c17d1e -r 8743998edfd3 
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Thu Apr 28 17:18:14 
2011 -0700
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Thu Apr 28 17:18:14 
2011 -0700
@@ -28,6 +28,7 @@
  * Authors: Niket Agarwal
  */
 
+#include "mem/ruby/buffers/MessageBuffer.hh"
 #include "mem/ruby/network/BasicLink.hh"
 #include "mem/ruby/network/Topology.hh"
 #include "mem/ruby/network/garnet/BaseGarnetNetwork.hh"
@@ -41,6 +42,12 @@
 m_buffers_per_data_vc = p->buffers_per_data_vc;
 m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc;
 
+m_ruby_start = 0;
+m_flits_received = 0;
+m_flits_injected = 0;
+m_network_latency = 0.0;
+m_queueing_latency = 0.0;
+
 // Currently Garnet only supports uniform bandwidth for all
 // links and network interfaces.
 for (std::vector::const_iterator i = 
@@ -59,6 +66,34 @@
 fatal("Garnet only supports uniform bw across all links and 
NIs\n");
 }
 }
+
+// Allocate to and from queues
+
+// Queues that are getting messages from protocol
+m_toNetQueues.resize(m_nodes);
+
+// Queues that are feeding the protocol
+m_fromNetQueues.resize(m_nodes);
+
+m_in_use.resize(m_virtual_networks);
+m_ordered.resize(m_virtual_networks);
+for (int i = 0; i < m_virtual_networks; i++) {
+m_in_use[i] = false;
+m_ordered[i] = false;
+}
+
+for (int node = 0; node < m_nodes; node++) {
+// Setting number of virtual message buffers per Network Queue
+m_toNetQueues[node].resize(m_virtual_networks);
+m_fromNetQueues[node].resize(m_virtual_networks);
+
+// Instantiating the Message Buffers that
+// interact with the coherence protocol
+for (int j = 0; j < m_virtual_networks; j++) {
+m_toNetQueues[node][j] = new MessageBuffer();
+m_fromNetQueues[node][j] = new MessageBuffer();
+}
+}
 }
 
 void
diff -r 89d0e7c17d1e -r 8743998edfd3 
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Thu Apr 28 17:18:14 
2011 -0700
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  Thu Apr 28 17:18:14 
2011 -0700
@@ -60,6 +60,19 @@
 int m_vcs_per_class;
 int m_buffers_per_data_vc;
 int m_buffers_per_ctrl_vc;
+
+int m_flits_received;
+int m_flits_injected;
+double m_network_latency;
+double m_queueing_latency;
+
+std::vector m_in_use;
+std::vector m_ordered;
+
+std::vector > m_toNetQueues;
+std::vector > m_fromNetQueues;
+
+Time m_ruby_start;
 };
 
 #endif // __MEM_RUBY_NETWORK_GARNET_BASEGARNETNETWORK_HH__
diff -r 89d0e7c17d1e -r 8743998edfd3 
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Thu Apr 
28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Thu Apr 
28 17:18:14 2011 -0700
@@ -49,12 +49,6 @@
 GarnetNetwork_d::GarnetNetwork_d(const Params *p)
 : BaseGarnetNetwork(p)
 {
-m_ruby_start = 0;
-m_flits_received = 0;
-m_flits_injected = 0;
-m_network_latency = 0.0;
-m_queueing_latency = 0.0;
-
 // record the routers
 for (vector::const_iterator i = 
  m_topology_ptr->params()->routers.begin();
@@ -62,32 +56,6 @@
 Router_d* router = safe_cast(*i);
 m_router_ptr_vector.push_back(router);
 }
-
-// Queues that are getting messages from protocol
-m_toNetQueues.resize(m_nodes);
-
- 

[m5-dev] changeset in m5: network: adjusted default endpoint bandwidth

2011-04-28 Thread Brad Beckmann
changeset 39e42ccddd63 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=39e42ccddd63
description:
network: adjusted default endpoint 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.

diffstat:

 src/mem/ruby/network/simple/SimpleNetwork.py |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (10 lines):

diff -r f113f73dd494 -r 39e42ccddd63 
src/mem/ruby/network/simple/SimpleNetwork.py
--- a/src/mem/ruby/network/simple/SimpleNetwork.py  Thu Apr 28 17:18:14 
2011 -0700
+++ b/src/mem/ruby/network/simple/SimpleNetwork.py  Thu Apr 28 17:18:14 
2011 -0700
@@ -34,5 +34,5 @@
 type = 'SimpleNetwork'
 buffer_size = Param.Int(0,
 "default buffer size; 0 indicates infinite buffering");
-endpoint_bandwidth = Param.Int(1, "");
+endpoint_bandwidth = Param.Int(1000, "bandwidth adjustment factor");
 adaptive_routing = Param.Bool(False, "enable adaptive routing");
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: network: moved network config params

2011-04-28 Thread Brad Beckmann
changeset 36987780169e in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=36987780169e
description:
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.

diffstat:

 src/mem/ruby/network/Network.cc|   3 --
 src/mem/ruby/network/Network.hh|   6 -
 src/mem/ruby/network/Network.py|   4 ---
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |   2 +
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh |   3 ++
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py |   2 +
 src/mem/ruby/network/simple/SimpleNetwork.cc   |   4 +++
 src/mem/ruby/network/simple/SimpleNetwork.hh   |   8 ++
 src/mem/ruby/network/simple/SimpleNetwork.py   |   4 +++
 src/mem/ruby/network/simple/Switch.cc  |   7 +++--
 src/mem/ruby/network/simple/Switch.hh  |   3 +-
 src/mem/ruby/network/simple/Throttle.cc|  12 +
 src/mem/ruby/network/simple/Throttle.hh|  12 +
 13 files changed, 42 insertions(+), 28 deletions(-)

diffs (282 lines):

diff -r 7c377f5162f8 -r 36987780169e src/mem/ruby/network/Network.cc
--- a/src/mem/ruby/network/Network.cc   Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/Network.cc   Thu Apr 28 17:18:14 2011 -0700
@@ -36,9 +36,6 @@
 {
 m_virtual_networks = p->number_of_virtual_networks;
 m_topology_ptr = p->topology;
-m_buffer_size = p->buffer_size;
-m_endpoint_bandwidth = p->endpoint_bandwidth;
-m_adaptive_routing = p->adaptive_routing;
 m_link_latency = p->link_latency;
 m_control_msg_size = p->control_msg_size;
 
diff -r 7c377f5162f8 -r 36987780169e src/mem/ruby/network/Network.hh
--- a/src/mem/ruby/network/Network.hh   Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/Network.hh   Thu Apr 28 17:18:14 2011 -0700
@@ -66,10 +66,7 @@
 
 virtual void init();
 
-int getBufferSize() { return m_buffer_size; }
 int getNumberOfVirtualNetworks() { return m_virtual_networks; }
-int getEndpointBandwidth() { return m_endpoint_bandwidth; }
-bool getAdaptiveRouting() {return m_adaptive_routing; }
 int getLinkLatency() { return m_link_latency; }
 int MessageSizeType_to_int(MessageSizeType size_type);
 
@@ -110,10 +107,7 @@
 const std::string m_name;
 int m_nodes;
 int m_virtual_networks;
-int m_buffer_size;
-int m_endpoint_bandwidth;
 Topology* m_topology_ptr;
-bool m_adaptive_routing;
 int m_link_latency;
 int m_control_msg_size;
 int m_data_msg_size;
diff -r 7c377f5162f8 -r 36987780169e src/mem/ruby/network/Network.py
--- a/src/mem/ruby/network/Network.py   Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/Network.py   Thu Apr 28 17:18:14 2011 -0700
@@ -47,10 +47,6 @@
 abstract = True
 number_of_virtual_networks = Param.Int(10, "");
 topology = Param.Topology("");
-buffer_size = Param.Int(0,
-"default buffer size; 0 indicates infinite buffering");
-endpoint_bandwidth = Param.Int(1, "");
-adaptive_routing = Param.Bool(False, "enable adaptive routing");
 link_latency = Param.Int(1,
 "local memory latency ?? NetworkLinkLatency");
 control_msg_size = Param.Int(8, "");
diff -r 7c377f5162f8 -r 36987780169e 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.ccThu Apr 
28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.ccThu Apr 
28 17:18:14 2011 -0700
@@ -48,6 +48,8 @@
 GarnetNetwork::GarnetNetwork(const Params *p)
 : BaseGarnetNetwork(p)
 {
+m_buffer_size = p->buffer_size;
+
 m_ruby_start = 0;
 m_flits_received = 0;
 m_flits_injected = 0;
diff -r 7c377f5162f8 -r 36987780169e 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hhThu Apr 
28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hhThu Apr 
28 17:18:14 2011 -0700
@@ -56,6 +56,8 @@
 
 void init();
 
+int getBufferSize() { return m_buffer_size; }
+
 // returns the queue requested for the given component
 MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num);
 MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num);
@@ -122,6 +124,7 @@
 std::vector m_ni_ptr_vector; // All NI's in Network
 
 Time m_ruby_start;
+int m_buffer_size;
 };
 
 inline std::ostream&
diff -r 7c377f5162f8 -r 36987780169e 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py
--- a/src/mem/ruby/network/gar

[m5-dev] changeset in m5: network: removed the unused network-wide latenc...

2011-04-28 Thread Brad Beckmann
changeset f113f73dd494 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=f113f73dd494
description:
network: removed the unused network-wide latency param

diffstat:

 src/mem/ruby/network/Network.cc |  1 -
 src/mem/ruby/network/Network.hh |  2 --
 src/mem/ruby/network/Network.py |  2 --
 3 files changed, 0 insertions(+), 5 deletions(-)

diffs (40 lines):

diff -r 36987780169e -r f113f73dd494 src/mem/ruby/network/Network.cc
--- a/src/mem/ruby/network/Network.cc   Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/Network.cc   Thu Apr 28 17:18:14 2011 -0700
@@ -36,7 +36,6 @@
 {
 m_virtual_networks = p->number_of_virtual_networks;
 m_topology_ptr = p->topology;
-m_link_latency = p->link_latency;
 m_control_msg_size = p->control_msg_size;
 
 // Total nodes/controllers in network
diff -r 36987780169e -r f113f73dd494 src/mem/ruby/network/Network.hh
--- a/src/mem/ruby/network/Network.hh   Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/Network.hh   Thu Apr 28 17:18:14 2011 -0700
@@ -67,7 +67,6 @@
 virtual void init();
 
 int getNumberOfVirtualNetworks() { return m_virtual_networks; }
-int getLinkLatency() { return m_link_latency; }
 int MessageSizeType_to_int(MessageSizeType size_type);
 
 // returns the queue requested for the given component
@@ -108,7 +107,6 @@
 int m_nodes;
 int m_virtual_networks;
 Topology* m_topology_ptr;
-int m_link_latency;
 int m_control_msg_size;
 int m_data_msg_size;
 };
diff -r 36987780169e -r f113f73dd494 src/mem/ruby/network/Network.py
--- a/src/mem/ruby/network/Network.py   Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/Network.py   Thu Apr 28 17:18:14 2011 -0700
@@ -47,6 +47,4 @@
 abstract = True
 number_of_virtual_networks = Param.Int(10, "");
 topology = Param.Topology("");
-link_latency = Param.Int(1,
-"local memory latency ?? NetworkLinkLatency");
 control_msg_size = Param.Int(8, "");
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: network: basic link bw for garnet and simple ne...

2011-04-28 Thread Brad Beckmann
changeset 7c377f5162f8 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=7c377f5162f8
description:
network: basic link bw for garnet and simple networks

This patch ensures that both Garnet and the simple networks use the bw 
value
specified in the topology.  To do so, the patch generalizes the 
specification
of bw for basic links.  This value is then translated to the specific 
value
used by the simple and Garnet networks.  Since Garent does not support
non-uniformed link bandwidth, the patch also adds a check to ensure all 
bws are
equal.

diffstat:

 configs/ruby/Ruby.py  |   4 +-
 src/mem/ruby/network/BasicLink.cc |   2 +-
 src/mem/ruby/network/BasicLink.hh |   2 +-
 src/mem/ruby/network/BasicLink.py |  10 +-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  |  23 ++-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  |   4 +-
 src/mem/ruby/network/garnet/BaseGarnetNetwork.py  |   2 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py|   3 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py  |   2 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc  |   2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py   |   3 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py |   2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc |   2 +-
 src/mem/ruby/network/simple/SConscript|   2 +
 src/mem/ruby/network/simple/SimpleLink.cc |  73 

 src/mem/ruby/network/simple/SimpleLink.hh |  82 
++
 src/mem/ruby/network/simple/SimpleLink.py |  39 
 src/mem/ruby/network/simple/SimpleNetwork.cc  |  13 +-
 18 files changed, 249 insertions(+), 21 deletions(-)

diffs (truncated from 474 to 300 lines):

diff -r 7226aebb77b4 -r 7c377f5162f8 configs/ruby/Ruby.py
--- a/configs/ruby/Ruby.py  Thu Apr 28 17:18:14 2011 -0700
+++ b/configs/ruby/Ruby.py  Thu Apr 28 17:18:14 2011 -0700
@@ -87,8 +87,8 @@
 class RouterClass(GarnetRouter): pass
 else:
 class NetworkClass(SimpleNetwork): pass
-class IntLinkClass(BasicIntLink): pass
-class ExtLinkClass(BasicExtLink): pass
+class IntLinkClass(SimpleIntLink): pass
+class ExtLinkClass(SimpleExtLink): pass
 class RouterClass(BasicRouter): pass
 
 #
diff -r 7226aebb77b4 -r 7c377f5162f8 src/mem/ruby/network/BasicLink.cc
--- a/src/mem/ruby/network/BasicLink.cc Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/BasicLink.cc Thu Apr 28 17:18:14 2011 -0700
@@ -32,7 +32,7 @@
 : SimObject(p)
 {
 m_latency = p->latency;
-m_bw_multiplier = p->bw_multiplier;
+m_bandwidth_factor = p->bandwidth_factor;
 m_weight = p->weight;
 }
 
diff -r 7226aebb77b4 -r 7c377f5162f8 src/mem/ruby/network/BasicLink.hh
--- a/src/mem/ruby/network/BasicLink.hh Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/BasicLink.hh Thu Apr 28 17:18:14 2011 -0700
@@ -53,7 +53,7 @@
 void print(std::ostream& out) const;
 
 int m_latency;
-int m_bw_multiplier;
+int m_bandwidth_factor;
 int m_weight;
 };
 
diff -r 7226aebb77b4 -r 7c377f5162f8 src/mem/ruby/network/BasicLink.py
--- a/src/mem/ruby/network/BasicLink.py Thu Apr 28 17:18:14 2011 -0700
+++ b/src/mem/ruby/network/BasicLink.py Thu Apr 28 17:18:14 2011 -0700
@@ -34,17 +34,21 @@
 type = 'BasicLink'
 link_id = Param.Int("ID in relation to other links")
 latency = Param.Int(1, "latency")
-bw_multiplier = Param.Int("simple network bw constant, usually in bytes")
+# The following banwidth factor does not translate to the same value for
+# both the simple and Garnet models.  For the most part, the bandwidth
+# factor is the width of the link in bytes, expect for certain situations
+# with regard to the simple network.
+bandwidth_factor = Param.Int("generic bandwidth factor, usually in bytes")
 weight = Param.Int(1, "used to restrict routing in shortest path analysis")
 
 class BasicExtLink(BasicLink):
 type = 'BasicExtLink'
 ext_node = Param.RubyController("External node")
 int_node = Param.BasicRouter("ID of internal node")
-bw_multiplier = 64
+bandwidth_factor = 64
 
 class BasicIntLink(BasicLink):
 type = 'BasicIntLink'
 node_a = Param.BasicRouter("Router on one end")
 node_b = Param.BasicRouter("Router on other end")
-bw_multiplier = 16
+bandwidth_factor = 16
diff -r 7226aebb77b4 -r 7c377f5162f8 
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  Thu Apr 28 17:18:14 
2011 -0700
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  T

[m5-dev] changeset in m5: network: convert links & switches to first clas...

2011-04-28 Thread Brad Beckmann
changeset 7226aebb77b4 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=7226aebb77b4
description:
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.

diffstat:

 configs/ruby/MESI_CMP_directory.py |   14 +
 configs/ruby/MI_example.py |   11 +
 configs/ruby/MOESI_CMP_directory.py|   14 +
 configs/ruby/MOESI_CMP_token.py|   14 +
 configs/ruby/MOESI_hammer.py   |   11 +
 configs/ruby/Network_test.py   |8 +
 configs/ruby/Ruby.py   |   34 +-
 src/mem/protocol/RubySlicc_Exports.sm  |6 +
 src/mem/ruby/network/BasicLink.cc  |   80 +++
 src/mem/ruby/network/BasicLink.hh  |   96 
 src/mem/ruby/network/BasicLink.py  |   50 ++
 src/mem/ruby/network/BasicRouter.cc|   52 ++
 src/mem/ruby/network/BasicRouter.hh|   67 +++
 src/mem/ruby/network/BasicRouter.py|   35 +
 src/mem/ruby/network/Network.hh|   22 +-
 src/mem/ruby/network/Network.py|   25 +-
 src/mem/ruby/network/SConscript|4 +
 src/mem/ruby/network/Topology.cc   |  216 -
 src/mem/ruby/network/Topology.hh   |   58 +-
 src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh |6 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.cc |   83 +++
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.hh |   92 
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py |   85 +++
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |   79 ++-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh  |   21 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py   |   44 ++
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc|   30 +-
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh|   10 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc |   23 +-
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh |   13 +-
 src/mem/ruby/network/garnet/fixed-pipeline/SConscript  |3 +
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.cc|   78 +++
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.hh|   89 
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py|   68 +++
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |   61 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh |   24 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py  |   44 ++
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc   |   18 +-
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh   |   13 +-
 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc|   18 +-
 src/mem/ruby/network/garnet/flexible-pipeline/Router.hh|   12 +-
 src/mem/ruby/network/garnet/flexible-pipeline/SConscript   |3 +
 src/mem/ruby/network/orion/NetworkPower.cc |   13 +-
 src/mem/ruby/network/simple/SimpleNetwork.cc   |   30 +-
 src/mem/ruby/network/simple/SimpleNetwork.hh   |   21 +-
 src/mem/ruby/network/topologies/Crossbar.py|   17 +-
 src/mem/ruby/network/topologies/Mesh.py|   32 +-
 src/mem/ruby/network/topologies/MeshDirCorners.py  |   50 +-
 src/mem/ruby/slicc_interface/AbstractController.hh |1 +
 src/mem/ruby/slicc_interface/Controller.py |1 +
 50 files changed, 1531 insertions(+), 368 deletions(-)

diffs (truncated from 3122 to 300 lines):

diff -r 2284cec55ef4 -r 7226aebb77b4 configs/ruby/MESI_CMP_directory.py
--- a/configs/ruby/MESI_CMP_directory.pyThu Apr 28 17:18:12 2011 -0700
+++ b/configs/ruby/MESI_CMP_directory.pyThu Apr 28 17:18:14 2011 -0700
@@ -71,6 +71,8 @@
 l2_bits = int(math.log(options.num_l2caches, 2))
 block_size_bits = int(math.log(options.cacheline_size, 2))
 
+cntrl_count = 0
+
 for i in xrange(options.num_cpus):
 #
 # First create the Ruby objects associate

[m5-dev] changeset in m5: ruby: moved topology to the top network directory

2011-04-28 Thread Brad Beckmann
changeset 73089f793a0a in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=73089f793a0a
description:
ruby: moved topology to the top network directory

Moved the Topology class to the top network directory because it is 
shared by
both the simple and Garnet networks.

diffstat:

 src/mem/ruby/network/Network.cc|2 +-
 src/mem/ruby/network/SConscript|1 +
 src/mem/ruby/network/Topology.cc   |  442 
++
 src/mem/ruby/network/Topology.hh   |  148 +++
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |2 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |2 +-
 src/mem/ruby/network/simple/SConscript |1 -
 src/mem/ruby/network/simple/SimpleNetwork.cc   |2 +-
 src/mem/ruby/network/simple/Topology.cc|  442 
--
 src/mem/ruby/network/simple/Topology.hh|  148 ---
 10 files changed, 595 insertions(+), 595 deletions(-)

diffs (truncated from 1261 to 300 lines):

diff -r 779d775abc11 -r 73089f793a0a src/mem/ruby/network/Network.cc
--- a/src/mem/ruby/network/Network.cc   Thu Apr 28 17:18:12 2011 -0700
+++ b/src/mem/ruby/network/Network.cc   Thu Apr 28 17:18:12 2011 -0700
@@ -28,8 +28,8 @@
 
 #include "base/misc.hh"
 #include "mem/protocol/MachineType.hh"
-#include "mem/ruby/network/simple/Topology.hh"
 #include "mem/ruby/network/Network.hh"
+#include "mem/ruby/network/Topology.hh"
 
 Network::Network(const Params *p)
 : SimObject(p)
diff -r 779d775abc11 -r 73089f793a0a src/mem/ruby/network/SConscript
--- a/src/mem/ruby/network/SConscript   Thu Apr 28 17:18:12 2011 -0700
+++ b/src/mem/ruby/network/SConscript   Thu Apr 28 17:18:12 2011 -0700
@@ -36,3 +36,4 @@
 SimObject('Network.py')
 
 Source('Network.cc')
+Source('Topology.cc')
diff -r 779d775abc11 -r 73089f793a0a src/mem/ruby/network/Topology.cc
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/src/mem/ruby/network/Topology.cc  Thu Apr 28 17:18:12 2011 -0700
@@ -0,0 +1,442 @@
+/*
+ * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
+ * 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.
+ */
+
+#include 
+
+#include "debug/RubyNetwork.hh"
+#include "mem/protocol/MachineType.hh"
+#include "mem/protocol/Protocol.hh"
+#include "mem/protocol/TopologyType.hh"
+#include "mem/ruby/common/NetDest.hh"
+#include "mem/ruby/network/Network.hh"
+#include "mem/ruby/network/Topology.hh"
+#include "mem/ruby/slicc_interface/AbstractController.hh"
+#include "mem/ruby/system/System.hh"
+
+using namespace std;
+
+const int INFINITE_LATENCY = 1; // Yes, this is a big hack
+const int DEFAULT_BW_MULTIPLIER = 1;  // Just to be consistent with above :)
+
+// Note: In this file, we use the first 2*m_nodes SwitchIDs to
+// represent the input and output endpoint links.  These really are
+// not 'switches', as they will not have a Switch object allocated for
+// them. The first m_nodes SwitchIDs are the links into the network,
+// the second m_nodes set of SwitchIDs represent the the output queues
+// of the network.
+
+// Helper functions based on chapter 29 of Cormen et al.
+void extend_shortest_path(Matrix& current_dist, Matrix& latencies,
+Matrix& inter_switches);
+Matrix shortest_path(const Matrix& weights, Matrix& latencies,
+Matrix& inter_switches);
+bool link_is_shortest_path_to_node(SwitchID src, SwitchID nex

[m5-dev] changeset in m5: garnet: cleaned up flexible network header file

2011-04-28 Thread Brad Beckmann
changeset 2284cec55ef4 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=2284cec55ef4
description:
garnet: cleaned up flexible network header file

diffstat:

 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |  2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diffs (16 lines):

diff -r 73089f793a0a -r 2284cec55ef4 
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.ccThu Apr 
28 17:18:12 2011 -0700
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.ccThu Apr 
28 17:18:12 2011 -0700
@@ -34,12 +34,10 @@
 #include "mem/protocol/MachineType.hh"
 #include "mem/ruby/buffers/MessageBuffer.hh"
 #include "mem/ruby/common/NetDest.hh"
-#include "mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh"
 #include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh"
 #include "mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh"
 #include "mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh"
 #include "mem/ruby/network/garnet/flexible-pipeline/Router.hh"
-#include "mem/ruby/network/simple/SimpleNetwork.hh"
 #include "mem/ruby/network/Topology.hh"
 
 using namespace std;
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: ruby: removed dated comment in SimpleNetwork

2011-04-28 Thread Brad Beckmann
changeset 779d775abc11 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=779d775abc11
description:
ruby: removed dated comment in SimpleNetwork

diffstat:

 src/mem/ruby/network/simple/SimpleNetwork.hh |  34 
 1 files changed, 0 insertions(+), 34 deletions(-)

diffs (44 lines):

diff -r f2ec56fd42c0 -r 779d775abc11 
src/mem/ruby/network/simple/SimpleNetwork.hh
--- a/src/mem/ruby/network/simple/SimpleNetwork.hh  Thu Apr 28 16:45:17 
2011 -0700
+++ b/src/mem/ruby/network/simple/SimpleNetwork.hh  Thu Apr 28 17:18:12 
2011 -0700
@@ -26,40 +26,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*
- * The SimpleNetwork class implements the interconnection
- * SimpleNetwork between components (processor/cache components and
- * memory/directory components).  The interconnection network as
- * described here is not a physical network, but a programming concept
- * used to implement all communication between components.  Thus parts
- * of this 'network' may model the on-chip connections between cache
- * controllers and directory controllers as well as the links between
- * chip and network switches.
- *
- * Two conceptual networks, an address and data network, are modeled.
- * The data network is unordered, where the address network provides
- * and conforms to a global ordering of all transactions.
- *
- * Currently the data network is point-to-point and the address
- * network is a broadcast network. These two distinct conceptual
- * network can be modeled as physically separate networks or
- * multiplexed over a single physical network.
- *
- * The network encapsulates all notion of virtual global time and is
- * responsible for ordering the network transactions received.  This
- * hides all of these ordering details from the processor/cache and
- * directory/memory modules.
- *
- * FIXME: Various flavor of networks are provided as a compiler time
- *configurable. We currently include this SimpleNetwork in the
- *makefile's vpath, so that SimpleNetwork.cc can provide an alternative
- *version constructor for the abstract Network class. It is easy to
- *modify this to make network a runtime configuable. Just make the
- *abstract Network class take a enumeration parameter, and based on
- *that to initial proper network. Or even better, just make the ruby
- *system initializer choose the proper network to initiate.
- */
-
 #ifndef __MEM_RUBY_NETWORK_SIMPLE_SIMPLENETWORK_HH__
 #define __MEM_RUBY_NETWORK_SIMPLE_SIMPLENETWORK_HH__
 
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: debug: fix help output

2011-04-28 Thread Gabe Black

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



src/base/debug.hh


Granted you're just moving this code, but it seems like a really roundabout 
way to avoid passing f as a pointer. Is there a reason you're using a reference?


- Gabe


On 2011-04-28 16:48:33, Nathan Binkert wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/666/
> ---
> 
> (Updated 2011-04-28 16:48:33)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> debug: fix help output
> 
> 
> Diffs
> -
> 
>   src/base/debug.hh b02bca5aed04 
>   src/base/debug.cc b02bca5aed04 
>   src/python/m5/debug.py b02bca5aed04 
> 
> Diff: http://reviews.m5sim.org/r/666/diff
> 
> 
> Testing
> ---
> 
> --debug-help works for me now
> 
> 
> Thanks,
> 
> Nathan
> 
>

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


[m5-dev] Review Request: debug: fix help output

2011-04-28 Thread Nathan Binkert

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

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


Summary
---

debug: fix help output


Diffs
-

  src/base/debug.hh b02bca5aed04 
  src/base/debug.cc b02bca5aed04 
  src/python/m5/debug.py b02bca5aed04 

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


Testing
---

--debug-help works for me now


Thanks,

Nathan

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


[m5-dev] changeset in m5: event: fix PythonEvent

2011-04-28 Thread Nathan Binkert
changeset f2ec56fd42c0 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=f2ec56fd42c0
description:
event: fix PythonEvent
order of %includes since they matter for this case

diffstat:

 src/python/swig/event.i |  4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diffs (15 lines):

diff -r b02bca5aed04 -r f2ec56fd42c0 src/python/swig/event.i
--- a/src/python/swig/event.i   Mon Apr 25 14:18:08 2011 -0700
+++ b/src/python/swig/event.i   Thu Apr 28 16:45:17 2011 -0700
@@ -77,8 +77,10 @@
 %import "sim/serialize.hh"
 
 %include "base/types.hh"
+%include "sim/eventq.hh"
+
+// This must follow eventq.hh
 %include "python/swig/pyevent.hh"
-%include "sim/eventq.hh"
 
 struct CountedDrainEvent : public Event
 {
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Problem with LLDT on x86?

2011-04-28 Thread Gabe Black
To clarify, by "make the switch" I mean replacing tr with tsl. Also,
thanks again for another very high quality bug report.

Gabe

On 04/27/11 12:56, Gabe Black wrote:
> There's a good chance the implementation was copied from LTR and not
> completely updated. Please go ahead and make the switch, and if it works
> I'm willing to say that's what the problem is. I'll look it over once
> more carefully if that works and we're going to commit it.
>
> Gabe
>
> On 04/27/11 04:47, Tim Harris (RESEARCH) wrote:
>> Hi,
>>
>> I'm trying to debug some user-mode software that is using the LDT in ways 
>> which AFAIK are correct on x86-64, but which are provoking a GPF when 
>> running in FS mode on M5 (either the tip, or some older trees I've been 
>> using).
>>
>> This is running on the Barrelfish OS, so the way the software's using the 
>> LDT may well be different from Linux or other cases that have been used in 
>> the past.
>>
>> The GPF happens at a "mov %ax, %fs" instruction.  %ax is 7 => RPL=3, and use 
>> the first entry in the LDT.  It looks like the LDT is 0, and the GPF occurs 
>> when accessing address 0 to load the first entry.  The program previously 
>> initializes the LDT via an LLDT instruction in a system call, but it looks 
>> like the value is not being written correctly.
>>
>> Looking at LLDT_R in src/arch/x86/isa/insts/system/segmentation.py:
>>
>>def macroop LLDT_R
>>{
>>.serializing
>>chks reg, t0, InGDTCheck, flags=(EZF,)
>>br label("end"), flags=(CEZF,)
>>limm t4, 0, dataSize=8
>>srli t4, reg, 3, dataSize=2
>>ldst t1, tsg, [8, t4, t0], dataSize=8
>>ld t2, tsg, [8, t4, t0], 8, dataSize=8
>>chks reg, t1, LDTCheck
>>wrdh t3, t1, t2
>>wrdl tr, t1, reg
>>wrbase tr, t3, dataSize=8
>>end:
>>fault "NoFault"
>>};
>>
>> Is there a bug with the final two stores to TR?  I'd been expecting the code 
>> to be setting the base and limit of TSL somewhere (by analogy with TSG in 
>> LGDT).  I'm not sure I understand x86 segmentation to be very confident of 
>> writing a fix - e.g., if it's just TR->TSL, or if there's something more 
>> subtle needed (or indeed if I'm completely wrong here!).
>>
>> Thanks,
>>
>> Tim
>>
>>
>>
>>
>> ___
>> 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] Cron /z/m5/regression/do-regression quick

2011-04-28 Thread Cron Daemon
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/inorder-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/o3-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/simple-atomic passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/simple-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/o3-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/opt/quick/01.hello-2T-smt/alpha/linux/o3-timing 
passed.
* build/ALPHA_SE/tests/opt/quick/20.eio-short/alpha/eio/simple-atomic 
passed.
* build/ALPHA_SE/tests/opt/quick/20.eio-short/alpha/eio/simple-timing 
passed.
* build/ALPHA_SE/tests/opt/quick/30.eio-mp/alpha/eio/simple-atomic-mp 
passed.
* build/ALPHA_SE/tests/opt/quick/30.eio-mp/alpha/eio/simple-timing-mp 
passed.
* build/ALPHA_SE/tests/opt/quick/50.memtest/alpha/linux/memtest passed.
* build/ALPHA_SE/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby passed.
* build/ALPHA_SE/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby 
passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic 
passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual
 passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing 
passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual
 passed.
* 
build/ALPHA_FS/tests/opt/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic
 passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/o3-timing passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/inorder-timing passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/simple-atomic passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/simple-timing passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/simple-timing-ruby 
passed.
* build/POWER_SE/tests/opt/quick/00.hello/power/linux/o3-timing passed.
* build/POWER_SE/tests/opt/quick/00.hello/power/linux/simple-atomic passed.
* build/SPARC_SE/tests/opt/quick/00.hello/sparc/linux/simple-atomic passed.
* build/SPARC_SE/tests/opt/quick/00.hello/sparc/linux/simple-timing-ruby 
passed.
* build/SPARC_SE/tests/opt/quick/00.hello/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/opt/quick/02.insttest/sparc/linux/o3-timing passed.
* build/SPARC_SE/tests/opt/quick/02.insttest/sparc/linux/simple-atomic 
passed.
* build/SPARC_SE/tests/opt/quick/02.insttest/sparc/linux/simple-timing 
passed.
* 
build/SPARC_SE/tests/opt/quick/40.m5threads-test-atomic/sparc/linux/o3-timing-mp
 passed.
* 
build/SPARC_SE/tests/opt/quick/40.m5threads-test-atomic/sparc/l