changeset 20dbef14192d in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=20dbef14192d
description:
        Ruby: pass Packet->Req->contextId() to Ruby.
        It is useful for Ruby to understand from whence request packets came.
        This has all request packets going into Ruby pass the contextId value, 
if
        it exists.  This supplants the old libruby proc_id value passed around 
in
        all the Messages, so I've also removed the unused unsigned proc_id; 
member
        generated by SLICC for all Message types.

diffstat:

 src/mem/protocol/RubySlicc_Types.sm         |   1 +
 src/mem/ruby/slicc_interface/RubyRequest.hh |   4 ++--
 src/mem/ruby/system/Sequencer.cc            |   4 +++-
 src/mem/slicc/symbols/Type.py               |  12 ------------
 4 files changed, 6 insertions(+), 15 deletions(-)

diffs (93 lines):

diff -r 99428f716e7b -r 20dbef14192d src/mem/protocol/RubySlicc_Types.sm
--- a/src/mem/protocol/RubySlicc_Types.sm       Thu Mar 31 12:20:16 2011 -0700
+++ b/src/mem/protocol/RubySlicc_Types.sm       Thu Mar 31 17:17:47 2011 -0700
@@ -117,6 +117,7 @@
   RubyAccessMode AccessMode, desc="user/supervisor access type";
   int Size,                  desc="size in bytes of access";
   PrefetchBit Prefetch,      desc="Is this a prefetch request";
+  int contextId,             desc="this goes away but must be replace with 
Nilay";
 }
 
 external_type(AbstractEntry, primitive="yes");
diff -r 99428f716e7b -r 20dbef14192d src/mem/ruby/slicc_interface/RubyRequest.hh
--- a/src/mem/ruby/slicc_interface/RubyRequest.hh       Thu Mar 31 12:20:16 
2011 -0700
+++ b/src/mem/ruby/slicc_interface/RubyRequest.hh       Thu Mar 31 17:17:47 
2011 -0700
@@ -52,7 +52,7 @@
     PrefetchBit m_Prefetch;
     uint8_t* data;
     PacketPtr pkt;
-    unsigned proc_id;
+    unsigned m_contextId;
 
     RubyRequest() {}
     RubyRequest(uint64_t _paddr, uint8_t* _data, int _len, uint64_t _pc,
@@ -67,7 +67,7 @@
           m_Prefetch(_pb),
           data(_data),
           pkt(_pkt),
-          proc_id(_proc_id)
+          m_contextId(_proc_id)
     {
       m_LineAddress = m_PhysicalAddress;
       m_LineAddress.makeLineAddress();
diff -r 99428f716e7b -r 20dbef14192d src/mem/ruby/system/Sequencer.cc
--- a/src/mem/ruby/system/Sequencer.cc  Thu Mar 31 12:20:16 2011 -0700
+++ b/src/mem/ruby/system/Sequencer.cc  Thu Mar 31 17:17:47 2011 -0700
@@ -671,11 +671,13 @@
 
     Address line_addr(request.m_PhysicalAddress);
     line_addr.makeLineAddress();
+    int proc_id = request.pkt->req->hasContextId() ?
+        request.pkt->req->contextId() : -1;
     RubyRequest *msg = new RubyRequest(request.m_PhysicalAddress.getAddress(),
                                        request.data, request.m_Size,
                                        request.m_ProgramCounter.getAddress(),
                                        ctype, amtype, request.pkt,
-                                       PrefetchBit_No, request.proc_id);
+                                       PrefetchBit_No, proc_id);
 
     DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\n",
         g_eventQueue_ptr->getTime(), m_version, "Seq", "Begin", "", "",
diff -r 99428f716e7b -r 20dbef14192d src/mem/slicc/symbols/Type.py
--- a/src/mem/slicc/symbols/Type.py     Thu Mar 31 12:20:16 2011 -0700
+++ b/src/mem/slicc/symbols/Type.py     Thu Mar 31 17:17:47 2011 -0700
@@ -261,9 +261,6 @@
             for dm in self.data_members.values():
                 code('m_${{dm.ident}} = other.m_${{dm.ident}};')
 
-            if self.isMessage:
-                code('proc_id = other.proc_id;')
-
             code.dedent()
             code('}')
 
@@ -272,9 +269,6 @@
             params = [ 'const %s& local_%s' % (dm.type.c_ident, dm.ident) \
                        for dm in self.data_members.itervalues() ]
 
-            if self.isMessage:
-                params.append('const unsigned local_proc_id')
-            
             params = ', '.join(params)
             code('${{self.c_ident}}($params)')
 
@@ -289,9 +283,6 @@
                 if "nextLineCallHack" in dm:
                     code('m_${{dm.ident}}${{dm["nextLineCallHack"]}};')
 
-            if self.isMessage:
-                code('proc_id = local_proc_id;')
-            
             code.dedent()
             code('}')
 
@@ -377,9 +368,6 @@
 
                 code('$const${{dm.type.c_ident}} m_${{dm.ident}}$init;')
 
-        if self.isMessage:
-            code('unsigned proc_id;')
-
         code.dedent()
         code('};')
 
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to