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