Skip to content

[prefetcher] Fix issue causing a race condition between cache access …#220

Open
medav wants to merge 1 commit intos5z:masterfrom
medav:prefetcher-fix
Open

[prefetcher] Fix issue causing a race condition between cache access …#220
medav wants to merge 1 commit intos5z:masterfrom
medav:prefetcher-fix

Conversation

@medav
Copy link

@medav medav commented Dec 4, 2018

…and invalidates

When the prefetcher issues memory requests, it uses the same child lock as the given
demand request. This means when the parent cache begins its transaction, it gives up
this lock meaning a pending invalidate could overwrite the demand request before the
response is sent back to the child cache. This causes an assert failure in the cache
coherence code (coherence_ctrls.cpp:114).

This fix resolves the issue by performing the demand access LAST in the prefetcher's
access routine. This ensures the request always returns with a valid coherence state
and does not cause the assert failure.

…and invalidates

When the prefetcher issues memory requests, it uses the same child lock as the given
demand request. This means when the parent cache begins its transaction, it gives up
this lock meaning a pending invalidate could overwrite the demand request before the
response is sent back to the child cache. This causes an assert failure in the cache
coherence code (coherence_ctrls.cpp:114).

This fix resolves the issue by performing the demand access LAST in the prefetcher's
access routine. This ensures the request always returns with a valid coherence state
and does not cause the assert failure.
@qianlong-zhang
Copy link

Hi @medav , do you know how to enable prefetcher for multi-cache system? here is my problem:
#240
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants