mem: Enable CommMonitor to output traces in atomic mode
The CommMonitor by default only allows memory traces to be gathered in timing mode. This patch allows memory traces to be gathered in atomic mode if all one needs is a functional trace of memory addresses used and timing information is of a secondary concern.
This commit is contained in:
parent
40e678069f
commit
1d403960af
1 changed files with 15 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2013 ARM Limited
|
||||
* Copyright (c) 2012-2013, 2015 ARM Limited
|
||||
* All rights reserved
|
||||
*
|
||||
* The license below extends only to copyright in the software and shall
|
||||
|
@ -176,10 +176,23 @@ CommMonitor::recvFunctionalSnoop(PacketPtr pkt)
|
|||
Tick
|
||||
CommMonitor::recvAtomic(PacketPtr pkt)
|
||||
{
|
||||
// allow stack distance calculations for atomic if enabled
|
||||
// do stack distance calculations if enabled
|
||||
if (stackDistCalc)
|
||||
stackDistCalc->update(pkt->cmd, pkt->getAddr());
|
||||
|
||||
// if tracing enabled, store the packet information
|
||||
// to the trace stream
|
||||
if (traceStream != NULL) {
|
||||
ProtoMessage::Packet pkt_msg;
|
||||
pkt_msg.set_tick(curTick());
|
||||
pkt_msg.set_cmd(pkt->cmdToIndex());
|
||||
pkt_msg.set_flags(pkt->req->getFlags());
|
||||
pkt_msg.set_addr(pkt->getAddr());
|
||||
pkt_msg.set_size(pkt->getSize());
|
||||
|
||||
traceStream->write(pkt_msg);
|
||||
}
|
||||
|
||||
return masterPort.sendAtomic(pkt);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue