comm_monitor.cc (11173:3a4d1b5cd05c) comm_monitor.cc (11284:b3926db25371)
1/*
2 * Copyright (c) 2012-2013, 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 130 unchanged lines hidden (view full) ---

139
140 // Store relevant fields of packet, because packet may be modified
141 // or even deleted when sendTiming() is called.
142 const ProbePoints::PacketInfo pkt_info(pkt);
143
144 const bool is_read = pkt->isRead();
145 const bool is_write = pkt->isWrite();
146 const bool expects_response(
1/*
2 * Copyright (c) 2012-2013, 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 130 unchanged lines hidden (view full) ---

139
140 // Store relevant fields of packet, because packet may be modified
141 // or even deleted when sendTiming() is called.
142 const ProbePoints::PacketInfo pkt_info(pkt);
143
144 const bool is_read = pkt->isRead();
145 const bool is_write = pkt->isWrite();
146 const bool expects_response(
147 pkt->needsResponse() && !pkt->memInhibitAsserted());
147 pkt->needsResponse() && !pkt->cacheResponding());
148
149 // If a cache miss is served by a cache, a monitor near the memory
150 // would see a request which needs a response, but this response
148
149 // If a cache miss is served by a cache, a monitor near the memory
150 // would see a request which needs a response, but this response
151 // would be inhibited and not come back from the memory. Therefore
152 // we additionally have to check the inhibit flag.
151 // would not come back from the memory. Therefore we additionally
152 // have to check the cacheResponding flag
153 if (expects_response && !stats.disableLatencyHists) {
154 pkt->pushSenderState(new CommMonitorSenderState(curTick()));
155 }
156
153 if (expects_response && !stats.disableLatencyHists) {
154 pkt->pushSenderState(new CommMonitorSenderState(curTick()));
155 }
156
157 // Attempt to send the packet (always succeeds for inhibited
158 // packets)
157 // Attempt to send the packet
159 bool successful = masterPort.sendTimingReq(pkt);
160
161 // If not successful, restore the sender state
162 if (!successful && expects_response && !stats.disableLatencyHists) {
163 delete pkt->popSenderState();
164 }
165
166 if (successful) {

--- 387 unchanged lines hidden ---
158 bool successful = masterPort.sendTimingReq(pkt);
159
160 // If not successful, restore the sender state
161 if (!successful && expects_response && !stats.disableLatencyHists) {
162 delete pkt->popSenderState();
163 }
164
165 if (successful) {

--- 387 unchanged lines hidden ---