Hello,
We've modified the cache hierarchy to include private L1, private L2 and
a shared L3 cache, but we get a segfault when running certain PARSEC
workloads. The prefetcher value is NULL, as we have it turned off
because the prefetcher is causing problems lately. Specifically, the
problem is at:
Program received signal SIGSEGV, Segmentation fault.
BasePrefetcher::getPacket (this=0x0) at
build/ALPHA_FS/mem/cache/prefetch/base.cc:135
135 if (pf.empty()) {
(gdb) bt
#0 BasePrefetcher::getPacket (this=0x0) at
build/ALPHA_FS/mem/cache/prefetch/base.cc:135
#1 0x0000000000503ceb in Cache<LRU>::getNextMSHR() ()
#2 0x0000000000503dc0 in Cache<LRU>::getTimingPacket() ()
#3 0x000000000050a589 in Cache<LRU>::MemSidePort::sendPacket() ()
#4 0x0000000000413754 in EventQueue::serviceOne (this=<value optimized
out>) at build/ALPHA_FS/sim/eventq.cc:203
#5 0x000000000045e56a in simulate (num_cycles=9223372036854775807) at
build/ALPHA_FS/sim/simulate.cc:73
...
I think the problem is in cache_impl.hh at line 1305:
PacketPtr pkt = prefetcher->getPacket();
Other points in the cache always have a conditional "if (prefetcher)"
before they access it, but not at this point. Hopefully this is the only
problem and is easily fixed.
Joe
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users