Good catch... it's true that we don't typically run with the prefetcher on,
so it's not too surprising that there are some subtle latent bugs.

It seems to me like the easiest fix would be to detect on a prefetch
response that the cache already has valid data and just throw the prefetch
away.  Unfortunately I'm on vacation right now so I don't have time to look
into the details... please email again if you look into this and you can't
figure out how to do it.

Also, if you do get it working, please post your patch so we can incorporate
it into the release.

Thanks,

Steve

On Wed, Dec 29, 2010 at 7:38 AM, zhanglunkai <[email protected]> wrote:

> Hi, I am adding a new prefetcher to m5 system. However it seems m5's
> current
> cache implementation does not fully support the prefetching mechanism.
>
> The problem is happening if a writeback request comes to cache while the
> cache is issuing a prefetching on the same address.
> The writeback request will directly find a victim block and fill the dirty
> data, so when the prefetched data comes back from it is holding the stale
> data.
> However, in m5's handleReponse() such situation is still handled as normal
> read request, so last writeback data is lost.
>
> Can anyone help me to solve this problem?
>
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev
>
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to