> On Jan. 27, 2016, 1:01 a.m., Brad Beckmann wrote: > > I just have a suggestion to further improve the comment, but other than > > that, this patch looks great. > > > > Also I'm curious, in your testing did you encounter any difficulties > > modeling finite buffering with the invisible buffer within QueuedSlavePort?
Thanks for the review - I'll take care of the comment soon. To address your question here, curiosity is killing the cat: By making buffers actually finite, I've exposed at least 7 other substantial performance pathologies throughout Ruby and interface components like the QueuedSlavePorts. While I'm trying to address some issues, I'm accummulating a list of problem descriptions, which I hope to share soon. - Joel ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3283/#review7954 ----------------------------------------------------------- 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
