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