coherent_xbar.cc (11130:45a23e44e93d) coherent_xbar.cc (11131:22e739752f47)
1/*
2 * Copyright (c) 2011-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

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

230 const bool expect_response = pkt->needsResponse() &&
231 !pkt->memInhibitAsserted();
232
233 // since it is a normal request, attempt to send the packet
234 bool success = masterPorts[master_port_id]->sendTimingReq(pkt);
235
236 if (snoopFilter && !system->bypassCaches()) {
237 // Let the snoop filter know about the success of the send operation
1/*
2 * Copyright (c) 2011-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

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

230 const bool expect_response = pkt->needsResponse() &&
231 !pkt->memInhibitAsserted();
232
233 // since it is a normal request, attempt to send the packet
234 bool success = masterPorts[master_port_id]->sendTimingReq(pkt);
235
236 if (snoopFilter && !system->bypassCaches()) {
237 // Let the snoop filter know about the success of the send operation
238 snoopFilter->updateRequest(pkt, *src_port, !success);
238 snoopFilter->finishRequest(!success, pkt);
239 }
240
241 // check if we were successful in sending the packet onwards
242 if (!success) {
243 // express snoops and inhibited packets should never be forced
244 // to retry
245 assert(!is_express_snoop);
246 assert(!pkt->memInhibitAsserted());

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

605 " SF size: %i lat: %i\n", __func__,
606 slavePorts[slave_port_id]->name(), pkt->cmdString(),
607 pkt->getAddr(), sf_res.first.size(), sf_res.second);
608
609 // let the snoop filter know about the success of the send
610 // operation, and do it even before sending it onwards to
611 // avoid situations where atomic upward snoops sneak in
612 // between and change the filter state
239 }
240
241 // check if we were successful in sending the packet onwards
242 if (!success) {
243 // express snoops and inhibited packets should never be forced
244 // to retry
245 assert(!is_express_snoop);
246 assert(!pkt->memInhibitAsserted());

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

605 " SF size: %i lat: %i\n", __func__,
606 slavePorts[slave_port_id]->name(), pkt->cmdString(),
607 pkt->getAddr(), sf_res.first.size(), sf_res.second);
608
609 // let the snoop filter know about the success of the send
610 // operation, and do it even before sending it onwards to
611 // avoid situations where atomic upward snoops sneak in
612 // between and change the filter state
613 snoopFilter->updateRequest(pkt, *slavePorts[slave_port_id], false);
613 snoopFilter->finishRequest(false, pkt);
614
615 snoop_result = forwardAtomic(pkt, slave_port_id, InvalidPortID,
616 sf_res.first);
617 } else {
618 snoop_result = forwardAtomic(pkt, slave_port_id);
619 }
620 snoop_response_cmd = snoop_result.first;
621 snoop_response_latency += snoop_result.second;

--- 266 unchanged lines hidden ---
614
615 snoop_result = forwardAtomic(pkt, slave_port_id, InvalidPortID,
616 sf_res.first);
617 } else {
618 snoop_result = forwardAtomic(pkt, slave_port_id);
619 }
620 snoop_response_cmd = snoop_result.first;
621 snoop_response_latency += snoop_result.second;

--- 266 unchanged lines hidden ---