[gem5-dev] changeset in gem5: ruby: Add M5_VAR_USED before variables used o...

2016-10-06 Thread Tushar Krishna
changeset ebf2acd02fc5 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=ebf2acd02fc5
description:
ruby: Add M5_VAR_USED before variables used only inside assert in 
garnet2.0.
This removes errors when building gem5.fast

diffstat:

 src/mem/ruby/network/garnet2.0/RoutingUnit.cc |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (18 lines):

diff -r 10d59d546ea2 -r ebf2acd02fc5 
src/mem/ruby/network/garnet2.0/RoutingUnit.cc
--- a/src/mem/ruby/network/garnet2.0/RoutingUnit.cc Thu Oct 06 14:35:22 
2016 -0400
+++ b/src/mem/ruby/network/garnet2.0/RoutingUnit.cc Thu Oct 06 21:06:00 
2016 -0400
@@ -181,7 +181,7 @@
 {
 PortDirection outport_dirn = "Unknown";
 
-int num_rows = m_router->get_net_ptr()->getNumRows();
+int M5_VAR_USED num_rows = m_router->get_net_ptr()->getNumRows();
 int num_cols = m_router->get_net_ptr()->getNumCols();
 assert(num_rows > 0 && num_cols > 0);
 
@@ -238,4 +238,5 @@
  PortDirection inport_dirn)
 {
 assert(0);
+return -1;
 }
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] Review Request 3645: hsail, gpu-compute: remove doGm/SmReturn add completeAcc

2016-10-06 Thread Tony Gutierrez

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

(Updated Oct. 6, 2016, 4:42 p.m.)


Review request for Default.


Summary (updated)
-

hsail, gpu-compute: remove doGm/SmReturn add completeAcc


Repository: gem5


Description (updated)
---

Changeset 11671:bd1d5f7f4a29
---
hsail, gpu-compute: remove doGm/SmReturn add completeAcc

we are removing doGmReturn/doSmReturn from the GM/LM pipes respectively,
and adding completeAcc() implementations for the HSAIL mem ops. the behavior
in doGmReturn/doSmReturn is dependent on HSAIL and HSAIL mem ops, however the
completion phase of memory ops in machine ISA can be very different, even
amongst individual machine ISA mem ops. so we remove this functionality from
the pipeline and allow it to be implemented by the individual instructions.


Diffs (updated)
-

  src/gpu-compute/local_memory_pipeline.cc 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/gpu_dyn_inst.cc 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/local_memory_pipeline.hh 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/gpu_dyn_inst.hh 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/global_memory_pipeline.hh 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/global_memory_pipeline.cc 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/arch/hsail/insts/mem.hh 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 

Diff: http://reviews.gem5.org/r/3645/diff/


Testing
---


Thanks,

Tony Gutierrez

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


Re: [gem5-dev] Review Request 3602: mem: Add DRAM low-power functionality

2016-10-06 Thread Matthew Poremba

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3602/#review8776
---


I suggest there be a parameter to enable or disable the low-power 
functionality. Ideally, when disabled the model would behave exactly as it does 
prior to the patch. I would be interested to be able to evaluate any difference 
in performance with and without this patch and a parameter would allow us to do 
that.

- Matthew Poremba


On Aug. 11, 2016, 9:08 a.m., Curtis Dunham wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3602/
> ---
> 
> (Updated Aug. 11, 2016, 9:08 a.m.)
> 
> 
> Review request for Default and Matthias Jung.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> mem: Add DRAM low-power functionality
> 
> Added power-down state transitions to the DRAM controller model.
> 
> Added per rank parameter, outstandingEvents, which tracks the number
> of outstanding command events and is used to determine when the
> controller should transition to a low power state.
> The controller will only transition when there are no outstanding events
> scheduled and the number of command entries for the given rank is 0.
> 
> The outstandingEvents parameter is incremented for every RD/WR burst,
> PRE, and REF event scheduled.  ACT is implicitly covered by RD/WR
> since burst will always issue and complete after a required ACT.
> The parameter is decremented when the event is serviced (completed).
> 
> The controller will automatically transition to ACT power down,
> PRE power down, or SREF.
> 
> Transition to ACT power down state scheduled from:
> 1) The RespondEvent, where read data is received from the memory.
>ACT power-down entry will be scheduled when one or more banks is
>open, all commands for the rank have completed (no more commands
>scheduled), and there are no commands in queue for the rank
> 
> Transition to PRE power down scheduled from:
> 1) respondEvent, when all banks are closed, all commands have
>completed, and there are no commands in queue for the rank
> 2) prechargeEvent when all banks are closed, all commands have
>completed, and there are no commands in queue for the rank
> 3) refreshEvent, after the refresh is complete when the previous
>state was ACT power-down
> 4) refreshEvent, after the refresh is complete when the previous
>state was PRE power-down and there are commands in the queue.
> 
> Transistion to SREF will be scheduled from:
> 1) refreshEvent, after the refresh is completes when the previous
>state was PRE power-down with no commands in queue
> 
> Power-down exit commands are scheduled from:
> 1) The refreshEvent, prior to issuing a refresh
> 2) doDRAMAccess, to wake-up the rank for RD/WR command issue.
> 
> Self-refresh exit commands are scheduled from:
> 1) The next request event, when the queue has commands for the rank
>in the readQueue or there are commands for the rank in the
>writeQueue and the bus state is WRITE.
> 
> Change-Id: I6103f660776e36c686655e71d92ec7b5b752050a
> Reviewed-by: Radhika Jagtap 
> 
> 
> Diffs
> -
> 
>   src/mem/dram_ctrl.hh e9096175eb38ac39f37c91bfdf2a450b9664e222 
>   src/mem/dram_ctrl.cc e9096175eb38ac39f37c91bfdf2a450b9664e222 
> 
> Diff: http://reviews.gem5.org/r/3602/diff/
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Curtis Dunham
> 
>

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


[gem5-dev] Review Request 3646: gpu-compute, hsail: call discardFetch() from the WF

2016-10-06 Thread Tony Gutierrez

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

Review request for Default.


Repository: gem5


Description
---

Changeset 11672:d9a27ad8741b
---
gpu-compute, hsail: call discardFetch() from the WF

because every taken branch causes fetch to be discarded, we move the call
to the WF to avoid to have to call it from each and every branch instruction
type.


Diffs
-

  src/gpu-compute/wavefront.cc 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/arch/hsail/insts/branch.hh 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 

Diff: http://reviews.gem5.org/r/3646/diff/


Testing
---


Thanks,

Tony Gutierrez

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


[gem5-dev] Review Request 3645: hsail, gpu-compute: remove doGm/SmReturn from gm/lm pipe add completeAcc

2016-10-06 Thread Tony Gutierrez

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

Review request for Default.


Repository: gem5


Description
---

Changeset 11671:7933c7d74368
---
hsail, gpu-compute: remove doGm/SmReturn from gm/lm pipe add completeAcc

we are removing doGmReturn from the GM pipe, and adding completeAcc()
implementations for the HSAIL mem ops. the behavior in doGmReturn is
dependent on HSAIL and HSAIL mem ops, however the completion phase
of memory ops in machine ISA can be very different, even amongst individual
machine ISA mem ops. so we remove this functionality from the pipeline and
allow it to be implemented by the individual instructions.


Diffs
-

  src/gpu-compute/gpu_dyn_inst.cc 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/local_memory_pipeline.hh 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/local_memory_pipeline.cc 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/arch/hsail/insts/mem.hh 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/global_memory_pipeline.hh 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/global_memory_pipeline.cc 
10d59d546ea236b24b8f8261ffa22bfc8a0c736c 
  src/gpu-compute/gpu_dyn_inst.hh 10d59d546ea236b24b8f8261ffa22bfc8a0c736c 

Diff: http://reviews.gem5.org/r/3645/diff/


Testing
---


Thanks,

Tony Gutierrez

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


[gem5-dev] changeset in gem5: ruby: garnet2.0

2016-10-06 Thread Tushar Krishna
changeset 10d59d546ea2 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=10d59d546ea2
description:
ruby: garnet2.0
Revamped version of garnet with more optimized single-cycle routers,
more configurability, and cleaner code.

diffstat:

 configs/network/Network.py |   55 +-
 configs/topologies/Crossbar.py |   15 +-
 configs/topologies/MeshDirCorners_XY.py|   41 +-
 configs/topologies/Mesh_XY.py  |   21 +-
 configs/topologies/Mesh_westfirst.py   |   20 +-
 configs/topologies/Pt2Pt.py|   20 +-
 src/base/statistics.cc |4 +-
 src/mem/ruby/network/BasicRouter.py|2 +
 src/mem/ruby/network/garnet2.0/CommonTypes.hh  |   65 ++
 src/mem/ruby/network/garnet2.0/Credit.cc   |   46 ++
 src/mem/ruby/network/garnet2.0/Credit.hh   |   60 ++
 src/mem/ruby/network/garnet2.0/CreditLink.hh   |   47 ++
 src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc   |  112 +
 src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh   |   72 +++
 src/mem/ruby/network/garnet2.0/GarnetLink.cc   |   94 
 src/mem/ruby/network/garnet2.0/GarnetLink.hh   |   97 
 src/mem/ruby/network/garnet2.0/GarnetLink.py   |   79 +++
 src/mem/ruby/network/garnet2.0/GarnetNetwork.cc|  460 +
 src/mem/ruby/network/garnet2.0/GarnetNetwork.hh|  208 +
 src/mem/ruby/network/garnet2.0/GarnetNetwork.py|   68 +++
 src/mem/ruby/network/garnet2.0/InputUnit.cc|  171 +++
 src/mem/ruby/network/garnet2.0/InputUnit.hh|  170 +++
 src/mem/ruby/network/garnet2.0/NetworkInterface.cc |  443 
 src/mem/ruby/network/garnet2.0/NetworkInterface.hh |  108 
 src/mem/ruby/network/garnet2.0/NetworkLink.cc  |   94 
 src/mem/ruby/network/garnet2.0/NetworkLink.hh  |   88 
 src/mem/ruby/network/garnet2.0/OutVcState.cc   |   65 ++
 src/mem/ruby/network/garnet2.0/OutVcState.hh   |   70 +++
 src/mem/ruby/network/garnet2.0/OutputUnit.cc   |  168 +++
 src/mem/ruby/network/garnet2.0/OutputUnit.hh   |  113 +
 src/mem/ruby/network/garnet2.0/README.txt  |   71 +++
 src/mem/ruby/network/garnet2.0/Router.cc   |  296 +
 src/mem/ruby/network/garnet2.0/Router.hh   |  140 ++
 src/mem/ruby/network/garnet2.0/RoutingUnit.cc  |  241 +++
 src/mem/ruby/network/garnet2.0/RoutingUnit.hh  |   89 
 src/mem/ruby/network/garnet2.0/SConscript  |   53 ++
 src/mem/ruby/network/garnet2.0/SwitchAllocator.cc  |  389 +
 src/mem/ruby/network/garnet2.0/SwitchAllocator.hh  |   88 
 src/mem/ruby/network/garnet2.0/VirtualChannel.cc   |   85 +++
 src/mem/ruby/network/garnet2.0/VirtualChannel.hh   |  101 
 src/mem/ruby/network/garnet2.0/flit.cc |   85 +++
 src/mem/ruby/network/garnet2.0/flit.hh |  122 +
 src/mem/ruby/network/garnet2.0/flitBuffer.cc   |   93 
 src/mem/ruby/network/garnet2.0/flitBuffer.hh   |   93 
 44 files changed, 4982 insertions(+), 40 deletions(-)

diffs (truncated from 5453 to 300 lines):

diff -r db895719c482 -r 10d59d546ea2 configs/network/Network.py
--- a/configs/network/Network.pyThu Oct 06 14:35:21 2016 -0400
+++ b/configs/network/Network.pyThu Oct 06 14:35:22 2016 -0400
@@ -38,25 +38,44 @@
 
 parser.add_option("--topology", type="string", default="Crossbar",
   help="check configs/topologies for complete set")
-parser.add_option("--mesh-rows", type="int", default=1,
+parser.add_option("--mesh-rows", type="int", default=0,
   help="the number of rows in the mesh topology")
-parser.add_option("--garnet-network", type="choice",
-  choices=['fixed', 'flexible'], help="'fixed'|'flexible'")
-parser.add_option("--network-fault-model", action="store_true", 
default=False,
-  help="enable network fault model: see 
src/mem/ruby/network/fault_model/")
+parser.add_option("--network", type="choice", default="simple",
+  choices=['simple', 'garnet2.0'],
+  help="'simple'|'garnet2.0'")
+parser.add_option("--router-latency", action="store", type="int",
+  default=1,
+  help="""number of pipeline stages in the garnet router.
+Has to be >= 1.
+Can be over-ridden on a per router basis
+in the topology file.""")
+parser.add_option("--link-latency", action="store", type="int", default=1,
+  help="""latency of each link the simple/garnet networks.
+Has to be >= 1.
+Can be over-ridden on a per link basis
+in the topology file.""")
+

[gem5-dev] changeset in gem5: ruby: remove the original garnet code.

2016-10-06 Thread Tushar Krishna
changeset db895719c482 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=db895719c482
description:
ruby: remove the original garnet code.
Only garnet2.0 will be supported henceforth.

diffstat:

 src/mem/ruby/network/garnet/BaseGarnetNetwork.cc  |  123 --
 src/mem/ruby/network/garnet/BaseGarnetNetwork.hh  |   94 --
 src/mem/ruby/network/garnet/BaseGarnetNetwork.py  |   41 -
 src/mem/ruby/network/garnet/NetworkHeader.hh  |   41 -
 src/mem/ruby/network/garnet/SConscript|   39 -
 src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh|   44 -
 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|   90 --
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc |  260 -
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh |  111 --
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py |   61 -
 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc |  122 --
 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh |  182 
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc  |  394 

 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh  |  102 --
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc   |   89 -
 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh   |   82 -
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc|   47 -
 src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh|   72 -
 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc|  116 --
 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh|  103 --
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc|  277 --
 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh|  134 --
 src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.cc   |   90 --
 src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.hh   |   57 -
 src/mem/ruby/network/garnet/fixed-pipeline/SConscript |   53 -
 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc   |  241 -
 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh   |   84 -
 src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc|  111 --
 src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh|   70 -
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc   |  265 -
 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh   |   94 --
 src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc|   80 -
 src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh|  100 --
 src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.cc|   90 --
 src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh|   90 --
 src/mem/ruby/network/garnet/fixed-pipeline/flit_d.cc  |   83 -
 src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh  |  115 --
 src/mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh |   49 -
 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   |   72 -
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc|  240 -
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh|  104 --
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py|   62 -
 src/mem/ruby/network/garnet/flexible-pipeline/InVcState.cc|   76 -
 src/mem/ruby/network/garnet/flexible-pipeline/InVcState.hh|   57 -
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc |  384 

 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh |  106 --
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc  |  151 ---
 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh  |   96 --
 src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.cc   |   58 -
 src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.hh   |   52 -
 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc   |  448 
--
 src/mem/ruby/network/garnet/flexible-pipeline/Router.hh   |  110 --
 src/mem/ruby/network/garnet/flexible-pipeline/SConscript  |   48 -
 src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc|   45 -
 src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh|   54 -
 src/mem/ruby/network/garnet/flexible-pipeline/flit.cc |   75 -
 src/mem/ruby/network/garnet/flexible-pipeline/flit.hh |   93 --
 

[gem5-dev] changeset in gem5: ruby: rename ALPHA_Network_test protocol to G...

2016-10-06 Thread Tushar Krishna
changeset cfa97c37117a in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=cfa97c37117a
description:
ruby: rename ALPHA_Network_test protocol to Garnet_standalone.
Over the past 6 years, we realized that the protocol is essentially used
to run the garnet network in a standalone manner, and feed standard 
synthetic
traffic patterns through it.

diffstat:

 build_opts/ALPHA_Network_test   |3 -
 build_opts/Garnet_standalone|4 +
 configs/ruby/Garnet_standalone.py   |  130 
 configs/ruby/Network_test.py|  130 
 src/mem/protocol/Garnet_standalone-cache.sm |  217 
 src/mem/protocol/Garnet_standalone-dir.sm   |  153 +++
 src/mem/protocol/Garnet_standalone-msg.sm   |   51 ++
 src/mem/protocol/Garnet_standalone.slicc|5 +
 src/mem/protocol/Network_test-cache.sm  |  213 ---
 src/mem/protocol/Network_test-dir.sm|  153 ---
 src/mem/protocol/Network_test-msg.sm|   51 --
 src/mem/protocol/Network_test.slicc |5 -
 src/mem/protocol/SConsopts  |2 +-
 src/mem/ruby/system/GPUCoalescer.cc |6 +-
 src/mem/ruby/system/GPUCoalescer.hh |2 +-
 src/mem/ruby/system/Sequencer.cc|6 +-
 src/mem/ruby/system/Sequencer.hh|2 +-
 src/mem/ruby/system/Sequencer.py|2 +-
 18 files changed, 570 insertions(+), 565 deletions(-)

diffs (truncated from 1261 to 300 lines):

diff -r b29aca3fcb75 -r cfa97c37117a build_opts/ALPHA_Network_test
--- a/build_opts/ALPHA_Network_test Tue Oct 04 13:06:05 2016 -0400
+++ /dev/null   Thu Jan 01 00:00:00 1970 +
@@ -1,3 +0,0 @@
-SS_COMPATIBLE_FP = 1
-CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,MinorCPU'
-PROTOCOL = 'Network_test'
diff -r b29aca3fcb75 -r cfa97c37117a build_opts/Garnet_standalone
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/build_opts/Garnet_standalone  Thu Oct 06 14:35:14 2016 -0400
@@ -0,0 +1,4 @@
+TARGET_ISA = 'alpha'
+SS_COMPATIBLE_FP = 1
+CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,MinorCPU'
+PROTOCOL = 'Garnet_standalone'
diff -r b29aca3fcb75 -r cfa97c37117a configs/ruby/Garnet_standalone.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/configs/ruby/Garnet_standalone.py Thu Oct 06 14:35:14 2016 -0400
@@ -0,0 +1,130 @@
+# Copyright (c) 2009 Advanced Micro Devices, Inc.
+# Copyright (c) 2016 Georgia 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
+
+import m5
+from m5.objects import *
+from m5.defines import buildEnv
+from m5.util import addToPath
+from Ruby import create_topology
+
+#
+# Declare caches used by the protocol
+#
+class L1Cache(RubyCache): pass
+
+def define_options(parser):
+return
+
+def create_system(options, full_system, system, dma_ports, ruby_system):
+if buildEnv['PROTOCOL'] != 'Garnet_standalone':
+panic("This script requires Garnet_standalone protocol to be built.")
+
+cpu_sequencers = []
+
+#
+# The Garnet_standalone protocol does not support fs nor dma
+#
+assert(dma_ports == [])
+
+#
+# The ruby network creation expects the list of nodes in the system to be
+# consistent with the NetDest list.
+# Therefore the l1 controller nodes must be listed before
+# the directory nodes and directory nodes before dma 

[gem5-dev] changeset in gem5: config: make internal links in network topolo...

2016-10-06 Thread Tushar Krishna
changeset cf870cd20cfc in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=cf870cd20cfc
description:
config: make internal links in network topology unidirectional.
This patch makes the internal links within the network topology
unidirectional, thus allowing any deadlock-free routing algorithms to
be specified from the topology itself using weights.
This patch also renames Mesh.py and MeshDirCorners.py to
Mesh_XY.py and MeshDirCorners_XY.py (Mesh with XY routing).
It also adds a Mesh_westfirst.py and CrossbarGarnet.py topologies.

diffstat:

 configs/topologies/Cluster.py  |   23 +-
 configs/topologies/Crossbar.py |   18 +-
 configs/topologies/CrossbarGarnet.py   |   50 +++
 configs/topologies/Mesh.py |  117 ---
 configs/topologies/MeshDirCorners.py   |  138 
 configs/topologies/MeshDirCorners_XY.py|  164 
++
 configs/topologies/Mesh_XY.py  |  152 +
 configs/topologies/Mesh_westfirst.py   |  158 +
 configs/topologies/Pt2Pt.py|4 +-
 configs/topologies/Torus.py|  129 ---
 src/mem/ruby/network/BasicLink.cc  |4 -
 src/mem/ruby/network/BasicLink.hh  |8 -
 src/mem/ruby/network/BasicLink.py  |   11 +-
 src/mem/ruby/network/Network.hh|7 +-
 src/mem/ruby/network/Topology.cc   |   50 +-
 src/mem/ruby/network/Topology.hh   |3 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |   19 +-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh  |7 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |   13 +-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh |7 +-
 src/mem/ruby/network/simple/SimpleNetwork.cc   |7 +-
 src/mem/ruby/network/simple/SimpleNetwork.hh   |7 +-
 src/mem/ruby/network/simple/SimpleNetwork.py   |8 +-
 23 files changed, 613 insertions(+), 491 deletions(-)

diffs (truncated from 1459 to 300 lines):

diff -r 004d34b65092 -r cf870cd20cfc configs/topologies/Cluster.py
--- a/configs/topologies/Cluster.py Thu Oct 06 14:35:17 2016 -0400
+++ b/configs/topologies/Cluster.py Thu Oct 06 14:35:18 2016 -0400
@@ -86,23 +86,30 @@
 node.makeTopology(options, network, IntLink, ExtLink, Router)
 
 # connect this cluster to the router
-link = IntLink(link_id=self.num_int_links(), 
node_a=self.router,
-node_b=node.router)
+link_out = IntLink(link_id=self.num_int_links(), 
src_node=self.router,
+   dst_node_=node.router)
+link_in = IntLink(link_id=self.num_int_links(), 
src_node=node.router,
+  dst_node_=self.router)
 
 if node.extBW:
-link.bandwidth_factor = node.extBW
+link_out.bandwidth_factor = node.extBW
+link_in.bandwidth_factor = node.extBW
 
-# if there is an interanl b/w for this node
+# if there is an internal b/w for this node
 # and no ext b/w to override
 elif self.intBW:
-link.bandwidth_factor = self.intBW
+link_out.bandwidth_factor = self.intBW
+link_in.bandwidth_factor = self.intBW
 
 if node.extLatency:
-link.latency = node.extLatency
+link_out.latency = node.extLatency
+link_in.latency = node.extLatency
 elif self.intLatency:
-link.latency = self.intLatency
+link_out.latency = self.intLatency
+link_in.latency = self.intLatency
 
-network.int_links.append(link)
+network.int_links.append(link_out)
+network.int_links.append(link_in)
 else:
 # node is just a controller,
 # connect it to the router via a ext_link
diff -r 004d34b65092 -r cf870cd20cfc configs/topologies/Crossbar.py
--- a/configs/topologies/Crossbar.pyThu Oct 06 14:35:17 2016 -0400
+++ b/configs/topologies/Crossbar.pyThu Oct 06 14:35:18 2016 -0400
@@ -39,6 +39,7 @@
 # the centralized crossbar.  The large numbers of routers are needed
 # because external links do not model outgoing bandwidth in the
 # simple network, but internal links do.
+# For garnet, one router suffices, use 

[gem5-dev] changeset in gem5: ruby: rename networktest to garnet_synthetic_...

2016-10-06 Thread Tushar Krishna
changeset 2bc3962f59fe in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=2bc3962f59fe
description:
ruby: rename networktest to garnet_synthetic_traffic.
networktest is essentially a collection of synthetic traffic patterns
for the network. The protocol name and the tester having the same name
led to multiple python configuration files with the same name, adding
confusion. This patch renames networktest to garnet_synthetic_traffic,
and also adds more synthetic traffic patterns.

diffstat:

 configs/example/garnet_synth_traffic.py|  157 
 configs/example/ruby_network_test.py   |  145 
 src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc |  358 
++
 src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.hh |  165 
 src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.py |   57 +
 src/cpu/testers/garnet_synthetic_traffic/SConscript|   37 +
 src/cpu/testers/networktest/NetworkTest.py |   46 -
 src/cpu/testers/networktest/SConscript |   37 -
 src/cpu/testers/networktest/networktest.cc |  289 

 src/cpu/testers/networktest/networktest.hh |  144 
 10 files changed, 774 insertions(+), 661 deletions(-)

diffs (truncated from 1475 to 300 lines):

diff -r cfa97c37117a -r 2bc3962f59fe configs/example/garnet_synth_traffic.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/configs/example/garnet_synth_traffic.py   Thu Oct 06 14:35:16 2016 -0400
@@ -0,0 +1,157 @@
+# Copyright (c) 2016 Georgia 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.
+#
+# Author: 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')
+addToPath('../topologies')
+
+import Options
+import Ruby
+
+# Get paths we might need.  It's expected this file is in m5/configs/example.
+config_path = os.path.dirname(os.path.abspath(__file__))
+config_root = os.path.dirname(config_path)
+m5_root = os.path.dirname(config_root)
+
+parser = optparse.OptionParser()
+Options.addCommonOptions(parser)
+
+parser.add_option("--synthetic", type="choice", default="uniform_random",
+  choices=['uniform_random', 'tornado', 'bit_complement', \
+   'bit_reverse', 'bit_rotation', 'neighbor', \
+'shuffle', 'transpose'])
+
+parser.add_option("-i", "--injectionrate", type="float", default=0.1,
+  metavar="I",
+  help="Injection rate in packets per cycle per node. \
+Takes decimal value between 0 to 1 (eg. 0.225). \
+Number of digits after 0 depends upon --precision.")
+
+parser.add_option("--precision", type="int", default=3,
+  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("--num-packets-max", type="int", default=-1,
+  help="Stop injecting after --num-packets-max.\
+Set to -1 to disable.")
+
+parser.add_option("--single-sender-id", type="int", default=-1,
+  help="Only inject 

[gem5-dev] changeset in gem5: config: add port directions and per-router de...

2016-10-06 Thread Tushar Krishna
changeset 2365e9e396f7 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=2365e9e396f7
description:
config: add port directions and per-router delay in topology.
This patch adds port direction names to the links during topology
creation, which can be used for better printed names for the links
or for users to code up their own adaptive routing algorithms.
It also adds support for every router to have an independent latency
value to support heterogeneous topologies with the subsequent
garnet2.0 patch.

diffstat:

 configs/topologies/Mesh_XY.py  |   8 +
 src/mem/ruby/network/BasicLink.py  |   8 -
 src/mem/ruby/network/BasicRouter.cc|   1 +
 src/mem/ruby/network/BasicRouter.hh|   1 +
 src/mem/ruby/network/BasicRouter.py|   1 +
 src/mem/ruby/network/Network.hh|   4 ++-
 src/mem/ruby/network/Topology.cc   |  15 --
 src/mem/ruby/network/Topology.hh   |   7 -
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc  |   4 ++-
 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh  |   4 ++-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc |   4 ++-
 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh |   4 ++-
 src/mem/ruby/network/simple/SimpleNetwork.cc   |   4 ++-
 src/mem/ruby/network/simple/SimpleNetwork.hh   |   4 ++-
 14 files changed, 57 insertions(+), 12 deletions(-)

diffs (271 lines):

diff -r cf870cd20cfc -r 2365e9e396f7 configs/topologies/Mesh_XY.py
--- a/configs/topologies/Mesh_XY.py Thu Oct 06 14:35:18 2016 -0400
+++ b/configs/topologies/Mesh_XY.py Thu Oct 06 14:35:20 2016 -0400
@@ -109,6 +109,8 @@
 int_links.append(IntLink(link_id=link_count,
  src_node=routers[east_out],
  dst_node=routers[west_in],
+ src_outport="East",
+ dst_inport="West",
  weight=1))
 link_count += 1
 
@@ -121,6 +123,8 @@
 int_links.append(IntLink(link_id=link_count,
  src_node=routers[west_out],
  dst_node=routers[east_in],
+ src_outport="West",
+ dst_inport="East",
  weight=1))
 link_count += 1
 
@@ -133,6 +137,8 @@
 int_links.append(IntLink(link_id=link_count,
  src_node=routers[north_out],
  dst_node=routers[south_in],
+ src_outport="North",
+ dst_inport="South",
  weight=2))
 link_count += 1
 
@@ -145,6 +151,8 @@
 int_links.append(IntLink(link_id=link_count,
  src_node=routers[south_out],
  dst_node=routers[north_in],
+ src_outport="South",
+ dst_inport="North",
  weight=2))
 link_count += 1
 
diff -r cf870cd20cfc -r 2365e9e396f7 src/mem/ruby/network/BasicLink.py
--- a/src/mem/ruby/network/BasicLink.py Thu Oct 06 14:35:18 2016 -0400
+++ b/src/mem/ruby/network/BasicLink.py Thu Oct 06 14:35:20 2016 -0400
@@ -46,11 +46,17 @@
 cxx_header = "mem/ruby/network/BasicLink.hh"
 ext_node = Param.RubyController("External node")
 int_node = Param.BasicRouter("ID of internal node")
-bandwidth_factor = 16
+bandwidth_factor = 16 # only used by simple network
 
 class BasicIntLink(BasicLink):
 type = 'BasicIntLink'
 cxx_header = "mem/ruby/network/BasicLink.hh"
 src_node = Param.BasicRouter("Router on src end")
 dst_node = Param.BasicRouter("Router on dst end")
+
+# only used by Garnet.
+src_outport = Param.String("", "Outport direction at src router")
+dst_inport = Param.String("", "Inport direction at dst router")
+
+# only used by simple network
 bandwidth_factor = 16
diff -r cf870cd20cfc -r 2365e9e396f7 src/mem/ruby/network/BasicRouter.cc
--- a/src/mem/ruby/network/BasicRouter.cc   Thu Oct 06 14:35:18 2016 -0400
+++ b/src/mem/ruby/network/BasicRouter.cc   Thu Oct 06 14:35:20 2016 -0400
@@ -32,6 +32,7 @@
 : ClockedObject(p)
 {
 m_id = 

[gem5-dev] changeset in gem5: config: add a separate config file for the ne...

2016-10-06 Thread Tushar Krishna
changeset 004d34b65092 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=004d34b65092
description:
config: add a separate config file for the network.
This patch adds a new file configs/network/Network.py to setup the 
network,
instead of doing that within Ruby.py.

diffstat:

 configs/example/apu_se.py   |   3 +
 configs/example/fs.py   |   3 +
 configs/example/garnet_synth_traffic.py |   3 +
 configs/example/ruby_direct_test.py |   3 +
 configs/example/ruby_gpu_random_test.py |   3 +
 configs/example/ruby_mem_test.py|   3 +
 configs/example/ruby_random_test.py |   3 +
 configs/example/se.py   |   3 +
 configs/network/Network.py  |  93 +
 configs/ruby/Ruby.py|  66 --
 10 files changed, 131 insertions(+), 52 deletions(-)

diffs (truncated from 391 to 300 lines):

diff -r 2bc3962f59fe -r 004d34b65092 configs/example/apu_se.py
--- a/configs/example/apu_se.py Thu Oct 06 14:35:16 2016 -0400
+++ b/configs/example/apu_se.py Thu Oct 06 14:35:17 2016 -0400
@@ -43,11 +43,13 @@
 from m5.util import addToPath
 
 addToPath('../ruby')
+addToPath('../network')
 addToPath('../common')
 addToPath('../topologies')
 
 import Options
 import Ruby
+import Network
 import Simulation
 import GPUTLBOptions, GPUTLBConfig
 
@@ -157,6 +159,7 @@
 
 
 Ruby.define_options(parser)
+Network.define_options(parser)
 
 #add TLB options to the parser
 GPUTLBOptions.tlb_options(parser)
diff -r 2bc3962f59fe -r 004d34b65092 configs/example/fs.py
--- a/configs/example/fs.py Thu Oct 06 14:35:16 2016 -0400
+++ b/configs/example/fs.py Thu Oct 06 14:35:17 2016 -0400
@@ -51,8 +51,10 @@
 
 addToPath('../common')
 addToPath('../ruby')
+addToPath('../network')
 
 import Ruby
+import Network
 
 from FSConfig import *
 from SysPaths import *
@@ -306,6 +308,7 @@
 # Add the ruby specific and protocol specific options
 if '--ruby' in sys.argv:
 Ruby.define_options(parser)
+Network.define_options(parser)
 
 (options, args) = parser.parse_args()
 
diff -r 2bc3962f59fe -r 004d34b65092 configs/example/garnet_synth_traffic.py
--- a/configs/example/garnet_synth_traffic.py   Thu Oct 06 14:35:16 2016 -0400
+++ b/configs/example/garnet_synth_traffic.py   Thu Oct 06 14:35:17 2016 -0400
@@ -33,10 +33,12 @@
 import os, optparse, sys
 addToPath('../common')
 addToPath('../ruby')
+addToPath('../network')
 addToPath('../topologies')
 
 import Options
 import Ruby
+import Network
 
 # Get paths we might need.  It's expected this file is in m5/configs/example.
 config_path = os.path.dirname(os.path.abspath(__file__))
@@ -85,6 +87,7 @@
 # Add the ruby specific and protocol specific options
 #
 Ruby.define_options(parser)
+Network.define_options(parser)
 
 execfile(os.path.join(config_root, "common", "Options.py"))
 
diff -r 2bc3962f59fe -r 004d34b65092 configs/example/ruby_direct_test.py
--- a/configs/example/ruby_direct_test.py   Thu Oct 06 14:35:16 2016 -0400
+++ b/configs/example/ruby_direct_test.py   Thu Oct 06 14:35:17 2016 -0400
@@ -35,10 +35,12 @@
 import os, optparse, sys
 addToPath('../common')
 addToPath('../ruby')
+addToPath('../network')
 addToPath('../topologies')
 
 import Options
 import Ruby
+import Network
 
 # Get paths we might need.  It's expected this file is in m5/configs/example.
 config_path = os.path.dirname(os.path.abspath(__file__))
@@ -63,6 +65,7 @@
 # Add the ruby specific and protocol specific options
 #
 Ruby.define_options(parser)
+Network.define_options(parser)
 (options, args) = parser.parse_args()
 
 if args:
diff -r 2bc3962f59fe -r 004d34b65092 configs/example/ruby_gpu_random_test.py
--- a/configs/example/ruby_gpu_random_test.py   Thu Oct 06 14:35:16 2016 -0400
+++ b/configs/example/ruby_gpu_random_test.py   Thu Oct 06 14:35:17 2016 -0400
@@ -40,10 +40,12 @@
 import os, optparse, sys
 addToPath('../common')
 addToPath('../ruby')
+addToPath('../network')
 addToPath('../topologies')
 
 import Options
 import Ruby
+import Network
 
 # Get paths we might need.
 config_path = os.path.dirname(os.path.abspath(__file__))
@@ -76,6 +78,7 @@
 # Add the ruby specific and protocol specific options
 #
 Ruby.define_options(parser)
+Network.define_options(parser)
 
 execfile(os.path.join(config_root, "common", "Options.py"))
 
diff -r 2bc3962f59fe -r 004d34b65092 configs/example/ruby_mem_test.py
--- a/configs/example/ruby_mem_test.py  Thu Oct 06 14:35:16 2016 -0400
+++ b/configs/example/ruby_mem_test.py  Thu Oct 06 14:35:17 2016 -0400
@@ -35,10 +35,12 @@
 import os, optparse, sys
 addToPath('../common')
 addToPath('../ruby')
+addToPath('../network')
 addToPath('../topologies')
 
 import Options
 import Ruby
+import Network
 
 # Get paths we might need.  It's expected this file is in m5/configs/example.
 config_path = os.path.dirname(os.path.abspath(__file__))
@@ -63,6 +65,7 @@
 # Add the ruby specific and protocol specific options
 #
 

Re: [gem5-dev] Review Request 3644: gpu-compute: remove inst enums and use bit flag for attributes

2016-10-06 Thread Alexandru Dutu

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3644/#review8775
---

Ship it!


Ship It!

- Alexandru Dutu


On Oct. 6, 2016, 2:14 a.m., Tony Gutierrez wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3644/
> ---
> 
> (Updated Oct. 6, 2016, 2:14 a.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> Changeset 11663:8d1c14f262e9
> ---
> gpu-compute: remove inst enums and use bit flag for attributes
> 
> this patch removes the GPUStaticInst enums that were defined in GPU.py. 
> instead,
> a simple set of attribute flags that can be set in the base instruction class
> are used. this will help unify the attributes of HSAIL and other possible ISA
> instructions within the model itself.
> 
> because the static instrution now carries the attributes, a GPUDynInst
> must carry a pointer to a valid GPUStaticInst so a new static kernel launch
> instruction is added, which carries the attributes needed to perform a
> the kernel launch.
> 
> 
> Diffs
> -
> 
>   src/gpu-compute/kernel_cfg.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/lds_state.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/lds_state.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/gpu_static_inst.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/gpu_static_inst.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/wavefront.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/local_memory_pipeline.cc 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/shader.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/vector_register_file.cc 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/SConscript b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/generic_types.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/generic_types.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/branch.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/decl.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/main.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/mem.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/mem.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/mem_impl.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/hsail/insts/pseudo_inst.cc 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/GPU.py b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/GPUStaticInstFlags.py PRE-CREATION 
>   src/gpu-compute/SConscript b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/code_enums.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/compute_unit.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/compute_unit.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/global_memory_pipeline.cc 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/gpu_dyn_inst.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/gpu-compute/gpu_dyn_inst.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
> 
> Diff: http://reviews.gem5.org/r/3644/diff/
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Tony Gutierrez
> 
>

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


Re: [gem5-dev] Review Request 3643: style: reduce include dependencies in some headers

2016-10-06 Thread Alexandru Dutu

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3643/#review8774
---

Ship it!


Ship It!

- Alexandru Dutu


On Oct. 5, 2016, 4:27 p.m., Brandon Potter wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3643/
> ---
> 
> (Updated Oct. 5, 2016, 4:27 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> Changeset 11660:1c76ab8bafec
> ---
> style: reduce include dependencies in some headers
> 
> 
> Diffs
> -
> 
>   src/arch/x86/system.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/tlb.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/tlb.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/utility.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/utility.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/kern/linux/linux.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/kern/linux/linux.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/multi_level_page_table.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/multi_level_page_table_impl.hh 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/page_table.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/page_table.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/arguments.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/process.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/process.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/sim_object.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/sim_object.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/syscall_emul.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/syscall_emul.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/generic/tlb.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/power/interrupts.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pagetable.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pagetable.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pseudo_inst.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/system.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
> 
> Diff: http://reviews.gem5.org/r/3643/diff/
> 
> 
> Testing
> ---
> 
> util/regress
> 
> 
> Thanks,
> 
> Brandon Potter
> 
>

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


Re: [gem5-dev] Review Request 3643: style: reduce include dependencies in some headers

2016-10-06 Thread Tony Gutierrez

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3643/#review8773
---

Ship it!


Ship It!

- Tony Gutierrez


On Oct. 5, 2016, 9:27 a.m., Brandon Potter wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3643/
> ---
> 
> (Updated Oct. 5, 2016, 9:27 a.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> Changeset 11660:1c76ab8bafec
> ---
> style: reduce include dependencies in some headers
> 
> 
> Diffs
> -
> 
>   src/arch/x86/system.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/tlb.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/tlb.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/utility.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/utility.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/kern/linux/linux.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/kern/linux/linux.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/multi_level_page_table.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/multi_level_page_table_impl.hh 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/page_table.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/page_table.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/arguments.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/process.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/process.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/sim_object.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/sim_object.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/syscall_emul.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/syscall_emul.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/generic/tlb.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/power/interrupts.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pagetable.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pagetable.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pseudo_inst.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/system.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
> 
> Diff: http://reviews.gem5.org/r/3643/diff/
> 
> 
> Testing
> ---
> 
> util/regress
> 
> 
> Thanks,
> 
> Brandon Potter
> 
>

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


Re: [gem5-dev] Review Request 3643: style: reduce include dependencies in some headers

2016-10-06 Thread Jason Lowe-Power

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3643/#review8772
---

Ship it!


Seems reasonable to me. Could you explain in the commit message how you decided 
which headers to remove/keep/add? Without digging into these files it's hard to 
understand your thought process.

Related: Do you think it makes sense to codify which headers to include in the 
style guideline? IMO, this would be helpful so you don't have to go through and 
do this again :).

One other small thing. I don't think we should hold up this patch for this 
issue, but it's something that's been bothering me. It seems the style checker 
is complaining about the ordering of includes for this patch, though I don't 
think they are actually wrong. When I run the following I get errors:

```
hg qref COPYING # to get the patch to be "unapplied" but the changes reflected 
to the files
util/style.py 
... lots of errors. For every single file it complains about the ordering of 
includes.
```

If I just use hg qref, the style checker doesn't complain. Ideas?

- Jason Lowe-Power


On Oct. 5, 2016, 4:27 p.m., Brandon Potter wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3643/
> ---
> 
> (Updated Oct. 5, 2016, 4:27 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> Changeset 11660:1c76ab8bafec
> ---
> style: reduce include dependencies in some headers
> 
> 
> Diffs
> -
> 
>   src/arch/x86/system.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/tlb.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/tlb.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/utility.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/utility.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/kern/linux/linux.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/kern/linux/linux.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/multi_level_page_table.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/multi_level_page_table_impl.hh 
> b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/page_table.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/mem/page_table.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/arguments.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/process.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/process.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/sim_object.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/sim_object.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/syscall_emul.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/sim/syscall_emul.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/generic/tlb.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/power/interrupts.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pagetable.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pagetable.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/pseudo_inst.cc b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
>   src/arch/x86/system.hh b29aca3fcb75f5ad92429001ab11c65b2f9635b0 
> 
> Diff: http://reviews.gem5.org/r/3643/diff/
> 
> 
> Testing
> ---
> 
> util/regress
> 
> 
> Thanks,
> 
> Brandon Potter
> 
>

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


[gem5-dev] Cron <m5test@zizzer> /z/m5/regression/do-regression quick

2016-10-06 Thread Cron Daemon
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby: 
passed.
* 
build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-two-level:
 passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-atomic: passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic: passed.
* build/ALPHA/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby: 
passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing: passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing: passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/minor-timing: passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing: passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby: 
passed.
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic: 
passed.
* build/ALPHA/tests/opt/quick/se/70.twolf/alpha/tru64/simple-atomic: passed.
* 
build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-simple:
 passed.
* build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing-mt: 
passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/o3-timing: passed.
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing: 
passed.
* build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby: 
passed.
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/minor-timing: passed.
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual:
 passed.
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual:
 passed.
* build/ALPHA/tests/opt/quick/se/70.twolf/alpha/tru64/simple-timing: passed.
* build/ALPHA/tests/opt/quick/se/50.vortex/alpha/tru64/simple-atomic: 
passed.
* build/ALPHA/tests/opt/quick/se/50.vortex/alpha/tru64/simple-timing: 
passed.
* build/ALPHA/tests/opt/quick/se/30.eon/alpha/tru64/simple-atomic: passed.
* 
build/ALPHA_MOESI_hammer/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer:
 passed.
* 
build/ALPHA_MOESI_hammer/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer:
 passed.
* 
build/ALPHA_MOESI_hammer/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer:
 passed.
* 
build/ALPHA_MOESI_hammer/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer:
 passed.
* 
build/ALPHA/tests/opt/quick/fs/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic:
 passed.
* 
build/ALPHA_MESI_Two_Level/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MESI_Two_Level:
 passed.
* 
build/ALPHA_MESI_Two_Level/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MESI_Two_Level:
 passed.
* 
build/ALPHA_MESI_Two_Level/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MESI_Two_Level:
 passed.
* 
build/ALPHA_MESI_Two_Level/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MESI_Two_Level:
 passed.
* 
build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory:
 passed.
* 
build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory:
 passed.
* 
build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_directory:
 passed.
* 
build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_directory:
 passed.
* 
build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_token:
 passed.
* 
build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_token:
 passed.
* 
build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token:
 passed.
* 
build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token:
 passed.
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing: passed.
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-simple:
 passed.
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing: passed.
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic: passed.
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-two-level:
 passed.
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby: 
passed.
* build/NULL/tests/opt/quick/se/50.memtest/null/none/memtest: passed.
* build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-simple-mem: passed.
* build/NULL/tests/opt/quick/se/50.memtest/null/none/memtest-filter: passed.
* build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-dram-ctrl: passed.
* build/NULL/tests/opt/quick/se/51.memcheck/null/none/memcheck: passed.
* 

Re: [gem5-dev] Review Request 3595: dev: Add m5 op to toggle synchronization for dist-gem5.

2016-10-06 Thread Gabor Dozsa


> On Sept. 9, 2016, 2:53 p.m., Gabor Dozsa wrote:
> > I like the idea of starting the sync on a pseudo op very much. I cannot see 
> > the usefulness of stopping the sync after it started though.  Do you have a 
> > use case in mind?
> > 
> > I have a few comments below (mainly minor nits). 
> > 
> > However, I think there is also a basic issue with the CPU suspend approach. 
> > A CPU can wake up whenever there is an interrupt or even a snoop request. 
> > That should be taken care of somehow I assume.
> 
> Michael LeBeane wrote:
> The use case for switching off would be if you have multiple regions of 
> interest in the code and no need to sync in between.  You could also just run 
> the simulation a bunch of times and move the start sync point, but I think 
> it’s much cleaner to run the app once and toggle the sync.
> 
> I suppose a spurious wakeup is possible; I had not really thought about 
> it.  I haven't seen CPUs wakeup in practice, but I don't really have any 
> devices that would generate an interrupt/snoop when all the cores are asleep.
> 
> One alternative way to do this would be to not suspend any of the cores 
> and modify the sync to support all the devices being on different ticks when 
> sync starts.  We would need to remember what the start time was for all the 
> participating nodes and use that time to enforce synchronization instead of 
> assuming everyone is on the same tick.  I avoided doing this since suspending 
> the CPUs until we reach the max of all nodes ticks' was easier.
> 
> Michael LeBeane wrote:
> Before I address your specific review comments, I think it would be good 
> to resolve the high-level concern about suspending CPUs.  Do you have any 
> thoughts about the alternative approach I suggested?  I'm not a huge fan of 
> it since having all the nodes on different ticks makes correlating traces 
> between nodes very difficult.  Did you have a better approach in mind?

I agree that the alternative approach would make it difficult to correlate 
events between nodes. I would suggest to go ahead with your current CPU 
suspend/wakup approach for now. Would it be possible to issue a warning in case 
of a spurious wakeup event? If something goes wrong the warning could give a 
hint.


- Gabor


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3595/#review8713
---


On Aug. 4, 2016, 4:51 p.m., Michael LeBeane wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3595/
> ---
> 
> (Updated Aug. 4, 2016, 4:51 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> Changeset 11561:1414a40eb1e2
> ---
> dev: Add m5 op to toggle synchronization for dist-gem5.
> This patch adds the ability for an application to request dist-gem5 to begin/
> end synchronization using an m5 op.  When toggling on sync, all nodes agree on
> the next sync point based on the maximum of all nodes' ticks.  CPUs are
> suspended until the sync point to avoid sending network messages until sync 
> has
> been enabled.  Toggling off sync acts like a global execution barrier, where
> all CPUs are disabled until every node reaches the toggle off point.  This
> avoids tricky situations such as one node hitting a toggle off followed by a
> toggle on before the other nodes hit the first toggle off.
> 
> 
> Diffs
> -
> 
>   configs/common/Options.py 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/arch/x86/isa/decoder/two_byte_opcodes.isa 
> 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/Ethernet.py 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/dist_etherlink.cc 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/dist_iface.hh 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/dist_iface.cc 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/dist_packet.hh 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/tcp_iface.hh 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/dev/net/tcp_iface.cc 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/sim/pseudo_inst.hh 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   src/sim/pseudo_inst.cc 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   util/m5/m5op.h 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   util/m5/m5op_x86.S 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
>   util/m5/m5ops.h 91f58918a76abf1a1dedcaa70a9b95789da7b88c 
> 
> Diff: http://reviews.gem5.org/r/3595/diff/
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Michael LeBeane
> 
>

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