Can somebody help out with this?

On Mon, Jun 6, 2011 at 3:17 PM, reena panda <reena.pa...@gmail.com> wrote:

> Hi,
>
> I am using m5's Inorder cpu model and ALPHA in the SE mode. I am running
> the SPEC2k6 benchmarks and am running into an issue when turning on the
> prefetcher for l2cache.
>
> m5.opt: build/ALPHA_SE/mem/cache/cache_impl.hh:803: Packet*
> Cache<TagStore>::getBusPacket(Packet*, typename TagStore::BlkType*, bool)
> [with TagStore = LRU]: Assertion `needsExclusive && !blk->isWritable()'
> failed.
> Program aborted at cycle 25061282500
>
> I tried to debug the issue. The issue is coming up in the following
> scenario:-
>
> In the l2 cache,
> a) A check is performed in the getNextMSHR function, when a prefetch
> request is popped off the prefetch queue to check if the block is already
> resident in the cache. In my case, this check says that the block is not
> resident in the l2cache and hence an MSHR gets allocated for it.
>
> b) But in the mean time, a writeback is initiated in the dcache for the
> same address. I believe a writeback gets immediately propagated to the
> l2cache. So, now a block for that address gets allocated in the L2cache
>
> c) By the time, this original prefetch request's MSHR is acted upon, the
> block becomes resident in the l2 cache(coz of 2 above) , which causes the
> above assertion failure as prefetch requests are not exclusive requests.
>
> I am not sure, but there might be more such corner cases(which I havent
> come across) which might cause the issue too. I found posts similar to this
> earlier in the m5 archives, but havent found a solution. Has anybody come up
> with a work around for the issue yet?
>
> Thanks,
> Reena
>
_______________________________________________
gem5-users mailing list
gem5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to