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.
This commit is contained in:
Jieming Yin
2016-12-15 16:59:17 -05:00
parent cc1f5a4d16
commit b9c7b8190c
4 changed files with 21 additions and 1 deletions

View File

@@ -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()