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
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to