> On Jan. 17, 2016, 11:25 p.m., Andreas Hansson wrote: > > src/mem/ruby/network/MessageBuffer.hh, line 139 > > <http://reviews.gem5.org/r/3283/diff/1/?file=53332#file53332line139> > > > > is there not a .size() on the map itself, or am I missunderstanding > > what is counted here? > > > > could you perhaps add a comment and explain how it is used?
The tricky thing is that the stall map is a map of lists. Calling .size() on the map will just give the number of map entries, but not the total number of mapped list entries, which is the desired number. It was easier to track the size outside the nested containers. I've added comments to clarify. - Joel ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3283/#review7920 ----------------------------------------------------------- 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
