prefetch: don't panic on requests w/o contextID (e.g., writebacks).
This commit is contained in:
parent
ac64586a99
commit
a94c68228a
3 changed files with 18 additions and 2 deletions
7
src/mem/cache/prefetch/ghb.cc
vendored
7
src/mem/cache/prefetch/ghb.cc
vendored
|
@ -34,13 +34,18 @@
|
|||
* GHB Prefetcher implementation.
|
||||
*/
|
||||
|
||||
#include "base/trace.hh"
|
||||
#include "mem/cache/prefetch/ghb.hh"
|
||||
#include "arch/isa_traits.hh"
|
||||
|
||||
void
|
||||
GHBPrefetcher::calculatePrefetch(PacketPtr &pkt, std::list<Addr> &addresses,
|
||||
std::list<Tick> &delays)
|
||||
{
|
||||
if (useContextId && !pkt->req->hasContextId()) {
|
||||
DPRINTF(HWPrefetch, "ignoring request with no context ID");
|
||||
return;
|
||||
}
|
||||
|
||||
Addr blk_addr = pkt->getAddr() & ~(Addr)(blkSize-1);
|
||||
int ctx_id = useContextId ? pkt->req->contextId() : 0;
|
||||
assert(ctx_id < Max_Contexts);
|
||||
|
|
5
src/mem/cache/prefetch/stride.cc
vendored
5
src/mem/cache/prefetch/stride.cc
vendored
|
@ -46,6 +46,11 @@ StridePrefetcher::calculatePrefetch(PacketPtr &pkt, std::list<Addr> &addresses,
|
|||
return;
|
||||
}
|
||||
|
||||
if (useContextId && !pkt->req->hasContextId()) {
|
||||
DPRINTF(HWPrefetch, "ignoring request with no context ID");
|
||||
return;
|
||||
}
|
||||
|
||||
Addr blk_addr = pkt->getAddr() & ~(Addr)(blkSize-1);
|
||||
int ctx_id = useContextId ? pkt->req->contextId() : 0;
|
||||
Addr pc = pkt->req->getPC();
|
||||
|
|
|
@ -409,6 +409,12 @@ class Request : public FastAlloc
|
|||
flags.set(VALID_EXTRA_DATA);
|
||||
}
|
||||
|
||||
bool
|
||||
hasContextId() const
|
||||
{
|
||||
return flags.isSet(VALID_CONTEXT_ID);
|
||||
}
|
||||
|
||||
/** Accessor function for context ID.*/
|
||||
int
|
||||
contextId() const
|
||||
|
@ -425,13 +431,13 @@ class Request : public FastAlloc
|
|||
return _threadId;
|
||||
}
|
||||
|
||||
/** Accessor function for pc.*/
|
||||
bool
|
||||
hasPC() const
|
||||
{
|
||||
return flags.isSet(VALID_PC);
|
||||
}
|
||||
|
||||
/** Accessor function for pc.*/
|
||||
Addr
|
||||
getPC() const
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue