cache.cc (11485:8ca4fbefff3e) | cache.cc (11493:06b73eb44660) |
---|---|
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 --- 1940 unchanged lines hidden (view full) --- 1949 // cache-to-cache response from some upper cache: 1950 // forward response to original requester 1951 assert(pkt->isResponse()); 1952 } 1953 } 1954 } 1955 1956 if (!blk || !blk->isValid()) { | 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 --- 1940 unchanged lines hidden (view full) --- 1949 // cache-to-cache response from some upper cache: 1950 // forward response to original requester 1951 assert(pkt->isResponse()); 1952 } 1953 } 1954 } 1955 1956 if (!blk || !blk->isValid()) { |
1957 if (is_deferred) { 1958 // we no longer have the block, and will not respond, but a 1959 // packet was allocated in MSHR::handleSnoop and we have 1960 // to delete it 1961 assert(pkt->needsResponse()); 1962 1963 // we have passed the block to a cache upstream, that 1964 // cache should be responding 1965 assert(pkt->cacheResponding()); 1966 1967 delete pkt; 1968 } 1969 |
|
1957 DPRINTF(CacheVerbose, "%s snoop miss for %s addr %#llx size %d\n", 1958 __func__, pkt->cmdString(), pkt->getAddr(), pkt->getSize()); 1959 return snoop_delay; 1960 } else { 1961 DPRINTF(Cache, "%s snoop hit for %s addr %#llx size %d, " 1962 "old state is %s\n", __func__, pkt->cmdString(), 1963 pkt->getAddr(), pkt->getSize(), blk->print()); 1964 } --- 75 unchanged lines hidden (view full) --- 2040 } 2041 } 2042 2043 if (!respond && is_timing && is_deferred) { 2044 // if it's a deferred timing snoop to which we are not 2045 // responding, then we've made a copy of both the request and 2046 // the packet, delete them here 2047 assert(pkt->needsResponse()); | 1970 DPRINTF(CacheVerbose, "%s snoop miss for %s addr %#llx size %d\n", 1971 __func__, pkt->cmdString(), pkt->getAddr(), pkt->getSize()); 1972 return snoop_delay; 1973 } else { 1974 DPRINTF(Cache, "%s snoop hit for %s addr %#llx size %d, " 1975 "old state is %s\n", __func__, pkt->cmdString(), 1976 pkt->getAddr(), pkt->getSize(), blk->print()); 1977 } --- 75 unchanged lines hidden (view full) --- 2053 } 2054 } 2055 2056 if (!respond && is_timing && is_deferred) { 2057 // if it's a deferred timing snoop to which we are not 2058 // responding, then we've made a copy of both the request and 2059 // the packet, delete them here 2060 assert(pkt->needsResponse()); |
2061 assert(!pkt->cacheResponding()); |
|
2048 delete pkt->req; 2049 delete pkt; 2050 } 2051 2052 // Do this last in case it deallocates block data or something 2053 // like that 2054 if (invalidate) { 2055 invalidateBlock(blk); --- 607 unchanged lines hidden --- | 2062 delete pkt->req; 2063 delete pkt; 2064 } 2065 2066 // Do this last in case it deallocates block data or something 2067 // like that 2068 if (invalidate) { 2069 invalidateBlock(blk); --- 607 unchanged lines hidden --- |