I did see your comments on the isReadWrite check and that is why I added the 
"Fix Me" comment.  The problem is I did not originally add the line and I have 
no way of testing any changes to this functionality.  I assume this is needed 
by the libruby interface and I'm expecting the folks at Wisconsin to fix this.  

Brad


> -----Original Message-----
> From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On
> Behalf Of Steve Reinhardt
> Sent: Sunday, March 21, 2010 11:05 PM
> To: M5 Developer List
> Subject: Re: [m5-dev] changeset in m5: ruby: Ruby support for LLSC
> 
> Comments below...
> 
> On Sun, Mar 21, 2010 at 10:47 PM, Brad Beckmann <brad.beckm...@amd.com>
> wrote:
> > changeset 185ad61a4117 in /z/repo/m5
> > details: http://repo.m5sim.org/m5?cmd=changeset;node=185ad61a4117
> > description:
> >        ruby: Ruby support for LLSC
> >
> > diffstat:
> >
> > 4 files changed, 102 insertions(+), 20 deletions(-)
> > src/mem/ruby/system/CacheMemory.cc |   17 +++++++++-
> > src/mem/ruby/system/RubyPort.cc    |   58
> +++++++++++++++++++++++++++++-------
> > src/mem/ruby/system/SConscript     |    2 +
> > src/mem/ruby/system/Sequencer.cc   |   45 ++++++++++++++++++++++-----
> >
> > diffs (215 lines):
> >
> [...]
> > -        type = RubyRequestType_RMW_Write;
> >     } else {
> > -      panic("Unsupported ruby packet type\n");
> > +        if (pkt->isRead()) {
> > +            if (pkt->req->isInstFetch()) {
> > +                type = RubyRequestType_IFETCH;
> > +            } else {
> > +                type = RubyRequestType_LD;
> > +            }
> > +        } else if (pkt->isWrite()) {
> > +            type = RubyRequestType_ST;
> > +        } else if (pkt->isReadWrite()) {
> > +            //
> > +            // Fix me. Just because the packet is a read/write
> request does not
> > +            // necessary mean it is a read-modify-write atomic
> operation.
> > +            //
> > +            type = RubyRequestType_RMW_Write;
> > +        } else {
> > +            panic("Unsupported ruby packet type\n");
> > +        }
> >     }
> 
> Did you miss my comment about isReadWrite() on this patch?  Or did you
> decide not to do anything since it's no worse than before?  Seems like
> it's at least worth adding a comment for posterity, but better yet to
> fix it now if it needs fixing.
> 
> > +
> > +                  g_system_ptr->getProfiler()-
> >profileTransition("Seq",
> > +                                     m_version,
> > +                                     Address(request.paddr),
> > +                                     "",
> > +                                     "SC Fail",
> > +                                     "",
> > +
> RubyRequestType_to_string(request.type));
> > +
> 
> I'm still not thrilled with the line-count explosion your "parameter
> per line" formatting gives, especially when we're dedicating entire
> lines to parameters like '""'.  As far as parsing the call, there are
> enough args to this function that it's opaque to me what it's supposed
> to be doing regardless of how many lines it takes.
> 
> Steve
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev


_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to