Repository navigation
perf(VMProm): refactor the TLB - #273
Merged
Merged
Conversation
This was referenced Sep 24, 2026
tperami
added this pull request to stack #266
September 24, 2026 15:10
tperami
marked this pull request as draft
September 24, 2026 15:10
tperami
force-pushed
the
tlb-refactor
branch
2 times, most recently
from
September 25, 2026 17:09
5491ff3 to
61b6e25
Compare
Collaborator
Author
|
The BBM checker has a bug where it will miss a conflict between a global page entry and an ASID-specific block entry that overlap. I'm writing this to record it because I'm not sure if we have a test for that. |
Collaborator
Author
|
Otherwise, @febyeji it's ready for review |
tperami
marked this pull request as ready for review
September 25, 2026 17:14
febyeji
requested changes
Sep 28, 2026
tperami
force-pushed
the
tlb-refactor
branch
from
September 28, 2026 17:43
61b6e25 to
e125cea
Compare
tperami
commented
Sep 29, 2026
febyeji
approved these changes
Sep 30, 2026
febyeji
left a comment
Collaborator
There was a problem hiding this comment.
LGTM. This can be merged after the tests are uncommented.
tperami
force-pushed
the
tlb-refactor
branch
4 times, most recently
from
October 2, 2026 12:49
cd59596 to
8efa1c9
Compare
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Oct 2, 2026
This is a quite big refactor, however more than half the diff in VMPromising.v is just moving the TState after the TLB. The main gist is that now the TLB is part of the TState for performance, although it can be recomputed from the register and memory state at any point. The TLB also contains information about all timestamps instead of just one. The 3 BBM mode are gone, and the BBM checker is either on or off. Entries that a not-present can't be in conflict. If that is important for proofs, the proof should have a precondition that all page table are present.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a quite big refactor, however more than half the diff in
VMPromising.v is just moving the TState after the TLB.
The main gist is that now the TLB is part of the TState for performance,
although it can be recomputed from the register and memory state at any point.
The TLB also contains information about all timestamps instead of just
one.
The 3 BBM mode are gone, and the BBM checker is either on or off.
Entries that a not-present can't be in conflict. If that is important
for proofs, the proof should have a precondition that all page table are
present.
This PR is part of a stack containing 4 PRs:
main