cache.cc (11747:a6da15219f95) | cache.cc (11749:3b2cb95f48ed) |
---|---|
1/* 2 * Copyright (c) 2010-2016 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 --- 1423 unchanged lines hidden (view full) --- 1432 delete tgt_pkt; 1433 break; 1434 1435 case MSHR::Target::FromSnoop: 1436 // I don't believe that a snoop can be in an error state 1437 assert(!is_error); 1438 // response to snoop request 1439 DPRINTF(Cache, "processing deferred snoop...\n"); | 1/* 2 * Copyright (c) 2010-2016 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 --- 1423 unchanged lines hidden (view full) --- 1432 delete tgt_pkt; 1433 break; 1434 1435 case MSHR::Target::FromSnoop: 1436 // I don't believe that a snoop can be in an error state 1437 assert(!is_error); 1438 // response to snoop request 1439 DPRINTF(Cache, "processing deferred snoop...\n"); |
1440 assert(!(is_invalidate && !mshr->hasPostInvalidate())); | 1440 // If the response is invalidating, a snooping target can 1441 // be satisfied if it is also invalidating. If the reponse is, not 1442 // only invalidating, but more specifically an InvalidateResp, the 1443 // MSHR was created due to an InvalidateReq and a cache above is 1444 // waiting to satisfy a WriteLineReq. In this case even an 1445 // non-invalidating snoop is added as a target here since this is 1446 // the ordering point. When the InvalidateResp reaches this cache, 1447 // the snooping target will snoop further the cache above with the 1448 // WriteLineReq. 1449 assert(!(is_invalidate && 1450 pkt->cmd != MemCmd::InvalidateResp && 1451 !mshr->hasPostInvalidate())); |
1441 handleSnoop(tgt_pkt, blk, true, true, mshr->hasPostInvalidate()); 1442 break; 1443 1444 default: 1445 panic("Illegal target->source enum %d\n", target.source); 1446 } 1447 } 1448 --- 1206 unchanged lines hidden --- | 1452 handleSnoop(tgt_pkt, blk, true, true, mshr->hasPostInvalidate()); 1453 break; 1454 1455 default: 1456 panic("Illegal target->source enum %d\n", target.source); 1457 } 1458 } 1459 --- 1206 unchanged lines hidden --- |