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

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

Reply via email to