changeset 588a45268ce4 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=588a45268ce4
description:
ruby: Check all VNETs for injection in garnet NetworkInterface
The NetworkInterface wakeup currently iterates over all VNETs and
breaks the
loop if a VNET is unable to allocate a VC. This can cause a deadlock if
a
lower numbered VNET is unable to allocate a VC while a higher numbered
VNET
has idle VCs. This seems like a bug as Garnet 1.0 uses a while loop
over an
if-statement, suggesting the break was intended for this while loop.
This
patch removes the break statement, which allows up to one message to be
dequeued from a VNET and injected into the network.
diffstat:
src/mem/ruby/network/garnet2.0/NetworkInterface.cc | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diffs (12 lines):
diff -r 97eebddaae84 -r 588a45268ce4
src/mem/ruby/network/garnet2.0/NetworkInterface.cc
--- a/src/mem/ruby/network/garnet2.0/NetworkInterface.cc Wed Nov 09
14:27:40 2016 -0600
+++ b/src/mem/ruby/network/garnet2.0/NetworkInterface.cc Thu Jan 19
11:58:49 2017 -0500
@@ -159,8 +159,6 @@
msg_ptr = b->peekMsgPtr();
if (flitisizeMessage(msg_ptr, vnet)) {
b->dequeue(curTime);
- } else {
- break;
}
}
}
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev