mem: Delay deleting of incoming packets by one call.
authorAli Saidi <Ali.Saidi@ARM.com>
Thu, 7 Jun 2012 14:59:03 +0000 (10:59 -0400)
committerAli Saidi <Ali.Saidi@ARM.com>
Thu, 7 Jun 2012 14:59:03 +0000 (10:59 -0400)
commitc80cd4136e3fec00c8448bc0dea20a65b182a259
tree26e4649233c5236eb0b19a2f54ae020ae323c2cf
parent7183c3fd56c4f0e8e4137795bb91dcaff312f591
mem: Delay deleting of incoming packets by one call.

This patch is a temporary fix until Andreas' four-phase patches
get reviewed and committed. Removing FastAlloc seems to have exposed
an issue which previously was reasonable rare in which packets are freed
before the sending cache is done with them. This change puts incoming packets
no a pendingDelete queue which are deleted at the start of the next call and
thus breaks the dependency between when the caller returns true and when the
packet is actually used by the sending cache.

Running valgrind on a multi-core linux boot and the memtester results in no
valgrind warnings.
src/mem/cache/cache.hh
src/mem/cache/cache_impl.hh
src/mem/tport.cc
src/mem/tport.hh