diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2014-08-10 05:39:04 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2014-08-10 05:39:04 -0400 |
commit | 47313601c1e4640b65d3974b7e06b9d7c7707742 (patch) | |
tree | 228500b4311b41f1172e5e5c88a0f815ef01fca6 | |
parent | d45ab59c29b918753b64f65448cd04b1cc3c6aba (diff) | |
download | gem5-47313601c1e4640b65d3974b7e06b9d7c7707742.tar.xz |
cpu: Ensure the traffic generator suppresses non-memory packets
This patch adds a check to ensure that packets which are not going to
a memory range are suppressed in the traffic generator. Thus, if a
trace is collected in full-system, the packets destined for devices
are not played back.
-rw-r--r-- | src/cpu/testers/traffic_gen/traffic_gen.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/cpu/testers/traffic_gen/traffic_gen.cc b/src/cpu/testers/traffic_gen/traffic_gen.cc index d53c9b000..c1ce0d6d4 100644 --- a/src/cpu/testers/traffic_gen/traffic_gen.cc +++ b/src/cpu/testers/traffic_gen/traffic_gen.cc @@ -187,10 +187,18 @@ TrafficGen::update() assert(curTick() >= nextPacketTick); // get the next packet and try to send it PacketPtr pkt = states[currState]->getNextPacket(); - numPackets++; - if (!port.sendTimingReq(pkt)) { - retryPkt = pkt; - retryPktTick = curTick(); + + // suppress packets that are not destined for a memory, such as + // device accesses that could be part of a trace + if (system->isMemAddr(pkt->getAddr())) { + numPackets++; + if (!port.sendTimingReq(pkt)) { + retryPkt = pkt; + retryPktTick = curTick(); + } + } else { + DPRINTF(TrafficGen, "Suppressed packet %s 0x%x\n", + pkt->cmdString(), pkt->getAddr()); } } |