IIRC, the stride prefetcher builds a stride table based on PCs, so it
fundamentally can't work with requests that don't have an associated PC.
 The tagged prefetcher does not have this limitation, so it doesn't need
the PC.

Note that the assertion you're running into is for a valid thread ID, not a
valid PC, which are different (though probably highly correlated) things.
 I think the code that's causing the assertion should be inside an if, such
that the context and thread IDs of a prefetch are only set if the packet
that causes it has valid IDs.

Steve

On Fri, Apr 6, 2012 at 10:37 AM, Mahmood Naderan <[email protected]>wrote:

> Dear developers,
> I previous versions, there was a check in prefetcher code
>
> if (!pkt->req->hasPC()) {
>    DPRINTF(HWPrefetch, "ignoring request with no PC");
>    return;
> }
>
> which prevent prefetching when the packet has no PC. However in the
> latest version, that check is removed in the tagged prefetcher. Stride
> is ok though.
>
> So the simulation crashes with this backtrace:
>
> #0 0x00007ffff67993a5 in __GI_raise (sig=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #1 0x00007ffff679cb0b in __GI_abort () at abort.c:92
> #2 0x00007ffff6791d4d in __GI___assert_fail (assertion=0x150fb30
> "privateFlags.isSet(VALID_THREAD_ID)", file=<optimized out>, line=467,
> function=<optimized out>) at assert.c:81
>
> #3 0x00000000005fee66 in Request::threadId (this=0x3d39fe0) at
> build/X86/mem/request.hh:467
>
> #4 0x00000000005fde07 in BasePrefetcher::notify (this=0x3091880,
> pkt=@0x7fffffffc390, time=1958221000) at
> build/X86/mem/cache/prefetch/base.cc:239
>
> #5 0x00000000005e6316 in Cache<LRU>::timingAccess (this=0x30c4340,
> pkt=0x3d39f80) at build/X86/mem/cache/cache_impl.hh:499
>
>
> m5.debug: build/X86/mem/request.hh:467: int Request::threadId() const:
> Assertion `privateFlags.isSet(VALID_THREAD_ID)' failed.
>
>
> I think the check must be added in tagged too.
> --
> // Naderan *Mahmood;
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to