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 --- |