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

Reply via email to