Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix a rare D$ ECC bug #2458

Merged
merged 1 commit into from
May 10, 2020
Merged

Fix a rare D$ ECC bug #2458

merged 1 commit into from
May 10, 2020

Conversation

aswaterman
Copy link
Member

@aswaterman aswaterman commented May 9, 2020

This bug can manifest with a store, load, store to same word as the first
one, then load, as follows. The first store succeeds, but is still in the
pending store buffer. Some unrelated load occurs. Then a store to the
same word as the first store occurs, this time detecting an ECC error.
Finally, some unrelated load occurs. (The loads are mostly irrelevant,
but the pipeline needs to stay busy for the bug to manifest.)

Since the bug can only manifest with two nearby stores to the same word,
one detecting an error and one not detecting an error, this bug is not
especially likely to occur in practice. In particular, if the error grew
before the sequence began, the bug would not manifest.

The fix is to prevent the store-merging logic from engaging by gating the
valid signal after the ECC kill occurs.

Type of change: bug report

This bug can manifest with a store, load, store to same word as the first
one, then load, as follows. The first store succeeds, but is still in the
pending store buffer.  Some unrelated load occurs.  Then a store to the
same word as the first store occurs, this time detecting an ECC error.
Finally, some unrelated load occurs.  (The loads are mostly irrelevant,
but the pipeline needs to stay busy for the bug to manifest.)

Since the bug can only manifest with two nearby stores to the same word,
one detecting an error and one not detecting an error, this bug is not
especially likely to occur in practice.  In particular, if the error grew
before the sequence began, the bug would not manifest.
@aswaterman aswaterman requested a review from ingallsj May 9, 2020 06:54
@aswaterman aswaterman merged commit 108fce7 into master May 10, 2020
@aswaterman aswaterman deleted the fix-ecc-bug branch May 10, 2020 03:39
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