changeset b34619c4961b in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=b34619c4961b
description:
        cpu: Use request flags in trace playback

        This patch changes the TraceGen such that it uses the optional request
        flags from the protobuf trace if they are present.

diffstat:

 src/cpu/testers/traffic_gen/generators.cc |  13 ++++++++-----
 src/cpu/testers/traffic_gen/generators.hh |   7 ++++++-
 2 files changed, 14 insertions(+), 6 deletions(-)

diffs (69 lines):

diff -r 74aca4cb081e -r b34619c4961b src/cpu/testers/traffic_gen/generators.cc
--- a/src/cpu/testers/traffic_gen/generators.cc Mon Apr 22 13:20:33 2013 -0400
+++ b/src/cpu/testers/traffic_gen/generators.cc Mon Apr 22 13:20:33 2013 -0400
@@ -50,10 +50,10 @@
 }
 
 void
-BaseGen::send(Addr addr, unsigned size, const MemCmd& cmd)
+BaseGen::send(Addr addr, unsigned size, const MemCmd& cmd,
+              Request::FlagsType flags)
 {
     // Create new request
-    Request::Flags flags;
     Request *req = new Request(addr, size, flags, masterID);
 
     // Embed it in a packet
@@ -215,6 +215,8 @@
         element.addr = pkt_msg.addr();
         element.blocksize = pkt_msg.size();
         element.tick = pkt_msg.tick();
+        if (pkt_msg.has_flags())
+            element.flags = pkt_msg.flags();
         return true;
     }
 
@@ -280,14 +282,15 @@
     // state graph from executing the state if it should not
     assert(currElement.isValid());
 
-    DPRINTF(TrafficGen, "TraceGen::execute: %c %d %d %d\n",
+    DPRINTF(TrafficGen, "TraceGen::execute: %c %d %d %d 0x%x\n",
             currElement.cmd.isRead() ? 'r' : 'w',
             currElement.addr,
             currElement.blocksize,
-            currElement.tick);
+            currElement.tick,
+            currElement.flags);
 
     send(currElement.addr + addrOffset, currElement.blocksize,
-         currElement.cmd);
+         currElement.cmd, currElement.flags);
 }
 
 void
diff -r 74aca4cb081e -r b34619c4961b src/cpu/testers/traffic_gen/generators.hh
--- a/src/cpu/testers/traffic_gen/generators.hh Mon Apr 22 13:20:33 2013 -0400
+++ b/src/cpu/testers/traffic_gen/generators.hh Mon Apr 22 13:20:33 2013 -0400
@@ -75,8 +75,10 @@
      * @param addr Physical address to use
      * @param size Size of the request
      * @param cmd Memory command to send
+     * @param flags Optional request flags
      */
-    void send(Addr addr, unsigned size, const MemCmd& cmd);
+    void send(Addr addr, unsigned size, const MemCmd& cmd,
+              Request::FlagsType flags = 0);
 
   public:
 
@@ -328,6 +330,9 @@
         /** The time at which the request should be sent */
         Tick tick;
 
+        /** Potential request flags to use */
+        Request::FlagsType flags;
+
         /**
          * Check validity of this element.
          *
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to