On Tue, 19 May 2015, Brad Beckmann wrote:



On May 15, 2015, 3:07 p.m., Nilay Vaish wrote:
src/mem/ruby/network/MessageBuffer.cc, line 320
<http://reviews.gem5.org/r/2805/diff/1/?file=45061#file45061line320>

    Why is this change right?  Why can we move messages from one structure to 
another in zero time?

These structures are not meant to model hardware. As the comment directly above this line states, all stalled messages associated with this address are put back on the prio heap. It is important that the reanalyzeList call ensures the consumer is scheduled for the current cycle so that the previously stalled messages will be observed before any younger messages that may arrive on the same cycle.



I think the aim of stall and wait functionality was to look beyond the message that is at the head of the priority queue. While earlier we were attaching some delay with moving messages around, this patch does away with that delay. I no longer see the point of moving messages from one structure to another. I suggest that we remove the whole stall and wait approach and replace the priority queue in the message buffer with either std::list or std::set. The code will be way more simple.

--
Nilay
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to