Review Board 2.0.15


MEM: Changes for SETranslatingProxy integration into Ruby

Review Request #918 - Created Nov. 28, 2011 and discarded

Information
Andreas Hansson
gem5
default
Reviewers
Default
ali, gblack, nate, stever
MEM: Changes for SETranslatingProxy integration into Ruby

This patch contains all the necessary fixes to get the required
functional behaviour working with Ruby interconnects.
util/regress passing all ignoring failing eio and t1000
Posted (Dec. 3, 2011, 1:12 a.m.)
I'd definitely like to have Brad take a look at this before it gets committed.  Looks OK to me though.
Posted (Dec. 6, 2011, 9:19 a.m.)
Hi Andreas,

Overall, this patch looks find to me.  However, I would like Nilay to look this over as well.

The only modification I would like to see is that we name SystemSequencer something more descriptive of what it is truely for.  For instance, how about RubyProxyPort or RubyDynFuncPort?  Sequncer is an historical Ruby term that doesn't really mean much in this context.  Furthermore, the SystemSequencer doesn't actually attach to a cache controller, so it would be good to identify that difference by not calling it a sequencer.

Other than that, this patch looks fine.

Brad
Posted (Dec. 6, 2011, 10:46 a.m.)



  
src/mem/ruby/system/RubyPort.cc (Diff revision 1)
 
 
We need this call to sendFunctional(). As of now, Ruby memory system does not supply data to the CPU models. This is because I/O requests do not go through Ruby right now. So a separate copy of the memory is maintained which gets to see all the requests.
Posted (Dec. 6, 2011, 7:37 p.m.)



  
src/mem/ruby/system/RubyPort.cc (Diff revision 1)
 
 
I am not following the reasoning. The packet is "sent" back to the requester already by returning from this function.

It is also worth noting that we run the full regression on all ISAs and they pass with this line removed.
  1. Actually, the sendFunctional() I thought you have removed appears five
    lines before this sendFunctional(). Sorry about that! I think this 
    sendFunctional() was put in place so as to mimic the implementation in
    cache_impl.hh. If you check that file, you would find a call to
    sendFunctional() in the function functionalAccess().
Posted (Dec. 7, 2011, 1:42 a.m.)
As far as testing, SPARC_FS should be fixed now. Ali might be able to help you get EIO going.