-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3283/
-----------------------------------------------------------

Review request for Default.


Repository: gem5


Description
-------

Changeset 11298:a626c5a461da
---------------------------
ruby: Make MessageBuffers actually finite sized

When Ruby controllers stall messages in MessageBuffers, the buffer moves those
messages off the priority heap and into a per-address stall map. When buffers
are finite-sized, the test areNSlotsAvailable() only checks the size of the
priority heap, but ignores the stall map, so the map is allowed to grow
unbounded if the controller stalls numerous messages. This patch fixes the
problem by tracking the stall map size and testing the total number of messages
in the buffer appropriately.


Diffs
-----

  src/mem/ruby/network/MessageBuffer.hh d1f8610cdffd 
  src/mem/ruby/network/MessageBuffer.cc d1f8610cdffd 

Diff: http://reviews.gem5.org/r/3283/diff/


Testing
-------

Multiple tests to exercise the capacity of buffers, including high bandwidth
demand and MLP situations concurrently accessing numerous different line
addresses. Regressions are unchanged, since they do not use finite-sized
buffering.

NOTE: When using finite-sized buffers, this fix can cause decreased
performance due to insufficient buffering, a condition that was masked with
the unbounded stall map. Users may need to adjust buffer sizes to revalidate
performance.


Thanks,

Joel Hestness

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

Reply via email to