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.
This commit is contained in:
parent
1ced08c850
commit
501f170924
1 changed files with 0 additions and 2 deletions
|
@ -159,8 +159,6 @@ NetworkInterface::wakeup()
|
||||||
msg_ptr = b->peekMsgPtr();
|
msg_ptr = b->peekMsgPtr();
|
||||||
if (flitisizeMessage(msg_ptr, vnet)) {
|
if (flitisizeMessage(msg_ptr, vnet)) {
|
||||||
b->dequeue(curTime);
|
b->dequeue(curTime);
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue