> On Jan. 22, 2016, 7:09 p.m., Jieming Yin wrote:
> > src/mem/ruby/network/MessageBuffer.cc, line 312
> > <http://reviews.gem5.org/r/3283/diff/2/?file=53335#file53335line312>
> >
> >     Seems fine to set m_stall_map_size to 0 directly after this loop, which 
> > is more efficient since this function might be called quite often.

While it may be easier, I think this should stay as-is: Even if 
reanalyzeAllMessages() is called very frequently (though commonly it's not 
compared to other Ruby functions), getting the size of the map entry takes 
trivial run time compared to moving map entries back to the m_prio_heap. Also, 
by changing the m_stall_map_size like this, the assert makes sure the counts 
are correct. We wouldn't be able to do this assertion if we just set the map to 
0 at the end of the loop.


- Joel


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


On Jan. 17, 2016, 11:47 p.m., Joel Hestness wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3283/
> -----------------------------------------------------------
> 
> (Updated Jan. 17, 2016, 11:47 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 11298:1af0000a8d03
> ---------------------------
> 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