Review Board 2.0.15


MEM: VirtualPorts are replaced with FSTranslatingProxys

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

Information
Andreas Hansson
gem5
default
Reviewers
Default
ali, gblack, nate, stever
MEM: VirtualPorts are replaced with FSTranslatingProxys

This patch introduces the FSTranslatingProxy instances replacing the
VirtualPorts. This requires small chagnes to many files.  Some
functionality (object loading) in constructors of System and derived
objects have been moved to the initState methods instead. This method
is called after the interconnections has been established, therefore
the PortProxies are functioning.
util/regress passing all ignoring failing eio and t1000
Posted (Dec. 3, 2011, 1:10 a.m.)



  
src/arch/arm/system.cc (Diff revision 1)
 
 
It's pretty minor, but why not just add a line:
    Params *p = params();
and then you wouldn't have to make all the separate changes below?
  1. I got the impression that we were striving for uniformity in how the parameters of an object are accessed and that the most "accepted" way was through "params()->". Easy to fix if desired.
  2. If we are, that's news to me... unless someone speaks up on this, I'd say go with the smaller change.
  3. I'm wholeheartedly for the "Params *p = params();" approach. In general, I'm a huge fan of creating local variables (and thus increasing lines of code) if it makes the individual lines shorter and easier to parse.
src/base/remote_gdb.cc (Diff revision 1)
 
 
Notice that in the original code the port->readBlob() was factored out of the #if, but now the readMem() call is not.

Ideally we should be able to do this:

TranslatingProxy *port = context->getVirtProxy();
port->readMem(...);

and have it work in both SE and FS mode with no #if at all.
  1. PortProxy pointer is now defined and used (through readMem) outside the if/else/endif. In other locations where the type was explicitly FSTranslatingProxy I have now made the pointers PortProxy to make everything more uniform.
tests/configs/t1000-simple-atomic.py (Diff revision 1)
 
 
I don't even see this line in the current code, so I'm assuming this is some kind of glitch with reviewboard.
  1. It seems to be caused by the reviewboard indeed.