coherent_xbar.cc (11793:ef606668d247) coherent_xbar.cc (12241:5257f14fea78)
1/*
1/*
2 * Copyright (c) 2011-2016 ARM Limited
2 * Copyright (c) 2011-2017 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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

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

656 sf_res.first.size(), sf_res.second);
657
658 // let the snoop filter know about the success of the send
659 // operation, and do it even before sending it onwards to
660 // avoid situations where atomic upward snoops sneak in
661 // between and change the filter state
662 snoopFilter->finishRequest(false, pkt->getAddr(), pkt->isSecure());
663
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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

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

656 sf_res.first.size(), sf_res.second);
657
658 // let the snoop filter know about the success of the send
659 // operation, and do it even before sending it onwards to
660 // avoid situations where atomic upward snoops sneak in
661 // between and change the filter state
662 snoopFilter->finishRequest(false, pkt->getAddr(), pkt->isSecure());
663
664 snoop_result = forwardAtomic(pkt, slave_port_id, InvalidPortID,
665 sf_res.first);
664 if (pkt->isEviction()) {
665 // for block-evicting packets, i.e. writebacks and
666 // clean evictions, there is no need to snoop up, as
667 // all we do is determine if the block is cached or
668 // not, instead just set it here based on the snoop
669 // filter result
670 if (!sf_res.first.empty())
671 pkt->setBlockCached();
672 } else {
673 snoop_result = forwardAtomic(pkt, slave_port_id, InvalidPortID,
674 sf_res.first);
675 }
666 } else {
667 snoop_result = forwardAtomic(pkt, slave_port_id);
668 }
669 snoop_response_cmd = snoop_result.first;
670 snoop_response_latency += snoop_result.second;
671 }
672
673 // set up a sensible default value

--- 306 unchanged lines hidden ---
676 } else {
677 snoop_result = forwardAtomic(pkt, slave_port_id);
678 }
679 snoop_response_cmd = snoop_result.first;
680 snoop_response_latency += snoop_result.second;
681 }
682
683 // set up a sensible default value

--- 306 unchanged lines hidden ---