summaryrefslogtreecommitdiff
path: root/configs/network
diff options
context:
space:
mode:
authorJieming Yin <jieming.yin@amd.com>2016-12-15 16:59:17 -0500
committerJieming Yin <jieming.yin@amd.com>2016-12-15 16:59:17 -0500
commitb9c7b8190c27ad161689934fa780859860cfd74f (patch)
treed619f13f20590cc41fbce7dd15e91758a4c0cf80 /configs/network
parentcc1f5a4d1607a02246244b7a805cdb3b24bb259a (diff)
downloadgem5-b9c7b8190c27ad161689934fa780859860cfd74f.tar.xz
ruby: Detect garnet network-level deadlock.
This patch detects garnet network deadlock by monitoring network interfaces. If a network interface continuously fails to allocate virtual channels for a message, a possible deadlock is detected.
Diffstat (limited to 'configs/network')
-rw-r--r--configs/network/Network.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/configs/network/Network.py b/configs/network/Network.py
index 3c15a4f79..1fbb38167 100644
--- a/configs/network/Network.py
+++ b/configs/network/Network.py
@@ -70,6 +70,9 @@ def define_options(parser):
default=False,
help="""enable network fault model:
see src/mem/ruby/network/fault_model/""")
+ parser.add_option("--garnet-deadlock-threshold", action="store",
+ type="int", default=50000,
+ help="network-level deadlock threshold.")
def create_network(options, ruby):
@@ -103,6 +106,7 @@ def init_network(options, network, InterfaceClass):
network.vcs_per_vnet = options.vcs_per_vnet
network.ni_flit_size = options.link_width_bits / 8
network.routing_algorithm = options.routing_algorithm
+ network.garnet_deadlock_threshold = options.garnet_deadlock_threshold
if options.network == "simple":
network.setup_buffers()