ruby: Fixed a deadlock when restoring a checkpoint with garnet
authorEmilio Castillo <castilloe@unican.es>
Wed, 30 Oct 2013 15:35:05 +0000 (10:35 -0500)
committerEmilio Castillo <castilloe@unican.es>
Wed, 30 Oct 2013 15:35:05 +0000 (10:35 -0500)
commit80fa6a0edcf845974e632fdb40f06dc0bb1aaa31
tree26ae5184b5dbea98f89f8375a0556df33c5a4aa6
parent4e9d91016a9f23b2ec6a73c01713e4a363d2593a
ruby: Fixed a deadlock when restoring a checkpoint with garnet
This patch fixes a problem where in Garnet, the enqueue time in the
VCallocator and the SWallocator which is of type Cycles was being stored
inside a variable with int type.

This lead to a known problem restoring checkpoints with garnet & the fixed
pipeline enabled. That value was really big and didn't fit in the variable
overflowing it, therefore some conditions on the VC allocation stage & the
SW allocation stage were not met and the packets didn't advance through the
network, leading to a deadlock panic right after the checkpoint was restored.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc