> On May 31, 2015, 10:33 a.m., Andreas Hansson wrote: > > src/mem/ruby/system/Sequencer.cc, line 496 > > <http://reviews.gem5.org/r/2842/diff/1/?file=45371#file45371line496> > > > > Yes, hack! :-) > > > > Surely this should be done as part of the hitCallback rather?
Seems like it should be in RubyPort::M5Port::hitCallback(PacketPtr pkt), which does other conditional packet transformations like this. I'm not sure of the best way to get the withInvalidate flag to that function, however. - Joel ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2842/#review6439 ----------------------------------------------------------- On May 21, 2015, 7:27 p.m., Marco Elver wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2842/ > ----------------------------------------------------------- > > (Updated May 21, 2015, 7:27 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 10839:2978f9ed5e7a > --------------------------- > ruby: Add ReadRespWithInvalidate support, fixes MESI consistency bug > > A sunk Inv in the IS state needs to be propagated to the LQ eventually. Thus > far, Ruby has no support for properly propagating an invalidate along with a > ReadResp. > > This patch adds support for ReadRespWithInvalidate upon a readCallback, so > that the LQ can properly deal with such a request. > > Note that we cannot just do a forward_eviction in the IS,Inv transition, as > other outstanding loads in the LQ after the one for which we get the Inv, may > be satisfied (with old values) inbetween the Inv and IS_I,Data transitions. > > The scenarios are the same as for the problem fixed in revision 10575 (which > addressed the LSQ side of things). > > > Diffs > ----- > > src/mem/protocol/MESI_Two_Level-L1cache.sm ecbab2522757 > src/mem/protocol/RubySlicc_Types.sm ecbab2522757 > src/mem/ruby/system/Sequencer.hh ecbab2522757 > src/mem/ruby/system/Sequencer.cc ecbab2522757 > > Diff: http://reviews.gem5.org/r/2842/diff/ > > > Testing > ------- > > Tester no longer finds bug. Note this was done with an (older) version of > gem5 that was still happy with Ruby+O3CPU. A quick run with ruby-tester > yielded no obvious issues. > > > *NOTE:* I'm not entirely happy with the "Hack?" code. If someone can possibly > suggest how we can add a nicer way to add support for ReadRespWithInvalidate > to Ruby, then that'd probably be better than what this patch does. > > > Thanks, > > Marco Elver > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
